{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/262.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/BestAvailableLocale.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/BestFitMatcher.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/BasicFormatMatcher.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/BestFitFormatMatcher.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/DateTimeStyleFormat.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/FormatDateTime.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/FormatDateTimePattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeRange.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeRangeToParts.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeToParts.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/InitializeDateTimeFormat.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/PartitionDateTimePattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/PartitionDateTimeRangePattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/ToDateTimeOptions.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/ToLocalTime.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/skeleton.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DateTimeFormat/utils.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/DisplayNames/CanonicalCodeForDisplayNames.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/LookupMatcher.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/LookupSupportedLocales.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/PluralRules/GetOperands.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/PluralRules/InitializePluralRules.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/PluralRules/ResolvePlural.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/FormatRelativeTime.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/FormatRelativeTimeToParts.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/InitializeRelativeTimeFormat.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/MakePartsList.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/PartitionRelativeTimePattern.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/RelativeTimeFormat/SingularRelativeTimeUnit.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/ResolveLocale.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/UnicodeExtensionValue.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/data.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/index.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/displaynames.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/list.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/number.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/plural-rules.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/types/relative-time.js","webpack:///./node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack:///./node_modules/@formatjs/intl/lib/index.js","webpack:///./node_modules/@formatjs/intl/lib/src/create-intl.js","webpack:///./node_modules/@formatjs/intl/lib/src/dateTime.js","webpack:///./node_modules/@formatjs/intl/lib/src/displayName.js","webpack:///./node_modules/@formatjs/intl/lib/src/error.js","webpack:///./node_modules/@formatjs/intl/lib/src/list.js","webpack:///./node_modules/@formatjs/intl/lib/src/message.js","webpack:///./node_modules/@formatjs/intl/lib/src/number.js","webpack:///./node_modules/@formatjs/intl/lib/src/plural.js","webpack:///./node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack:///./node_modules/@formatjs/intl/lib/src/types.js","webpack:///./node_modules/@formatjs/intl/lib/src/utils.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@superkoders/modal/dist/index.js","webpack:///./node_modules/@superkoders/modal/dist/js/SKModal.js","webpack:///./node_modules/@superkoders/modal/dist/js/constants.js","webpack:///./node_modules/@superkoders/sk-tools/src/array.js","webpack:///./node_modules/@superkoders/sk-tools/src/className.js","webpack:///./node_modules/@superkoders/sk-tools/src/emmiter.js","webpack:///./node_modules/@superkoders/sk-tools/src/event.js","webpack:///./node_modules/@superkoders/sk-tools/src/function.js","webpack:///./node_modules/@superkoders/sk-tools/src/loadScript.js","webpack:///./node_modules/@superkoders/sk-tools/src/loadVimeo.js","webpack:///./node_modules/@superkoders/sk-tools/src/loadYoutube.js","webpack:///./node_modules/@superkoders/sk-tools/src/logic.js","webpack:///./node_modules/@superkoders/sk-tools/src/manipulation.js","webpack:///./node_modules/@superkoders/sk-tools/src/selector.js","webpack:///./node_modules/c3/c3.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/clsx/dist/clsx.mjs","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/constant.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/descending.js","webpack:///./node_modules/d3-array/src/deviation.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-array/src/histogram.js","webpack:///./node_modules/d3-array/src/identity.js","webpack:///./node_modules/d3-array/src/index.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/d3-array/src/mean.js","webpack:///./node_modules/d3-array/src/median.js","webpack:///./node_modules/d3-array/src/merge.js","webpack:///./node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-array/src/pairs.js","webpack:///./node_modules/d3-array/src/permute.js","webpack:///./node_modules/d3-array/src/quantile.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/scan.js","webpack:///./node_modules/d3-array/src/shuffle.js","webpack:///./node_modules/d3-array/src/sum.js","webpack:///./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack:///./node_modules/d3-array/src/threshold/scott.js","webpack:///./node_modules/d3-array/src/threshold/sturges.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/transpose.js","webpack:///./node_modules/d3-array/src/variance.js","webpack:///./node_modules/d3-array/src/zip.js","webpack:///./node_modules/d3-axis/src/array.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-brush/src/constant.js","webpack:///./node_modules/d3-brush/src/event.js","webpack:///./node_modules/d3-brush/src/index.js","webpack:///./node_modules/d3-brush/src/noevent.js","webpack:///./node_modules/d3-chord/src/array.js","webpack:///./node_modules/d3-chord/src/chord.js","webpack:///./node_modules/d3-chord/src/constant.js","webpack:///./node_modules/d3-chord/src/index.js","webpack:///./node_modules/d3-chord/src/math.js","webpack:///./node_modules/d3-chord/src/ribbon.js","webpack:///./node_modules/d3-collection/src/entries.js","webpack:///./node_modules/d3-collection/src/index.js","webpack:///./node_modules/d3-collection/src/keys.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/nest.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-collection/src/values.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/index.js","webpack:///./node_modules/d3-color/src/lab.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-contour/src/area.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-contour/src/ascending.js","webpack:///./node_modules/d3-contour/src/blur.js","webpack:///./node_modules/d3-contour/src/constant.js","webpack:///./node_modules/d3-contour/src/contains.js","webpack:///./node_modules/d3-contour/src/contours.js","webpack:///./node_modules/d3-contour/src/density.js","webpack:///./node_modules/d3-contour/src/index.js","webpack:///./node_modules/d3-contour/src/noop.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-dispatch/src/index.js","webpack:///./node_modules/d3-drag/src/constant.js","webpack:///./node_modules/d3-drag/src/drag.js","webpack:///./node_modules/d3-drag/src/event.js","webpack:///./node_modules/d3-drag/src/index.js","webpack:///./node_modules/d3-drag/src/nodrag.js","webpack:///./node_modules/d3-drag/src/noevent.js","webpack:///./node_modules/d3-dsv/src/autoType.js","webpack:///./node_modules/d3-dsv/src/csv.js","webpack:///./node_modules/d3-dsv/src/dsv.js","webpack:///./node_modules/d3-dsv/src/index.js","webpack:///./node_modules/d3-dsv/src/tsv.js","webpack:///./node_modules/d3-ease/src/back.js","webpack:///./node_modules/d3-ease/src/bounce.js","webpack:///./node_modules/d3-ease/src/circle.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-ease/src/elastic.js","webpack:///./node_modules/d3-ease/src/exp.js","webpack:///./node_modules/d3-ease/src/index.js","webpack:///./node_modules/d3-ease/src/linear.js","webpack:///./node_modules/d3-ease/src/math.js","webpack:///./node_modules/d3-ease/src/poly.js","webpack:///./node_modules/d3-ease/src/quad.js","webpack:///./node_modules/d3-ease/src/sin.js","webpack:///./node_modules/d3-fetch/src/blob.js","webpack:///./node_modules/d3-fetch/src/buffer.js","webpack:///./node_modules/d3-fetch/src/dsv.js","webpack:///./node_modules/d3-fetch/src/image.js","webpack:///./node_modules/d3-fetch/src/index.js","webpack:///./node_modules/d3-fetch/src/json.js","webpack:///./node_modules/d3-fetch/src/text.js","webpack:///./node_modules/d3-fetch/src/xml.js","webpack:///./node_modules/d3-force/src/center.js","webpack:///./node_modules/d3-force/src/collide.js","webpack:///./node_modules/d3-force/src/constant.js","webpack:///./node_modules/d3-force/src/index.js","webpack:///./node_modules/d3-force/src/jiggle.js","webpack:///./node_modules/d3-force/src/link.js","webpack:///./node_modules/d3-force/src/manyBody.js","webpack:///./node_modules/d3-force/src/radial.js","webpack:///./node_modules/d3-force/src/simulation.js","webpack:///./node_modules/d3-force/src/x.js","webpack:///./node_modules/d3-force/src/y.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/index.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-geo/src/adder.js","webpack:///./node_modules/d3-geo/src/area.js","webpack:///./node_modules/d3-geo/src/bounds.js","webpack:///./node_modules/d3-geo/src/cartesian.js","webpack:///./node_modules/d3-geo/src/centroid.js","webpack:///./node_modules/d3-geo/src/circle.js","webpack:///./node_modules/d3-geo/src/clip/antimeridian.js","webpack:///./node_modules/d3-geo/src/clip/buffer.js","webpack:///./node_modules/d3-geo/src/clip/circle.js","webpack:///./node_modules/d3-geo/src/clip/extent.js","webpack:///./node_modules/d3-geo/src/clip/index.js","webpack:///./node_modules/d3-geo/src/clip/line.js","webpack:///./node_modules/d3-geo/src/clip/rectangle.js","webpack:///./node_modules/d3-geo/src/clip/rejoin.js","webpack:///./node_modules/d3-geo/src/compose.js","webpack:///./node_modules/d3-geo/src/constant.js","webpack:///./node_modules/d3-geo/src/contains.js","webpack:///./node_modules/d3-geo/src/distance.js","webpack:///./node_modules/d3-geo/src/graticule.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/index.js","webpack:///./node_modules/d3-geo/src/interpolate.js","webpack:///./node_modules/d3-geo/src/length.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/pointEqual.js","webpack:///./node_modules/d3-geo/src/polygonContains.js","webpack:///./node_modules/d3-geo/src/projection/albers.js","webpack:///./node_modules/d3-geo/src/projection/albersUsa.js","webpack:///./node_modules/d3-geo/src/projection/azimuthal.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/conic.js","webpack:///./node_modules/d3-geo/src/projection/conicConformal.js","webpack:///./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/equalEarth.js","webpack:///./node_modules/d3-geo/src/projection/equirectangular.js","webpack:///./node_modules/d3-geo/src/projection/fit.js","webpack:///./node_modules/d3-geo/src/projection/gnomonic.js","webpack:///./node_modules/d3-geo/src/projection/identity.js","webpack:///./node_modules/d3-geo/src/projection/index.js","webpack:///./node_modules/d3-geo/src/projection/mercator.js","webpack:///./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack:///./node_modules/d3-geo/src/projection/orthographic.js","webpack:///./node_modules/d3-geo/src/projection/resample.js","webpack:///./node_modules/d3-geo/src/projection/stereographic.js","webpack:///./node_modules/d3-geo/src/projection/transverseMercator.js","webpack:///./node_modules/d3-geo/src/rotation.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-geo/src/transform.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/d3-hierarchy/src/cluster.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/index.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/d3-hierarchy/src/stratify.js","webpack:///./node_modules/d3-hierarchy/src/tree.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/discrete.js","webpack:///./node_modules/d3-interpolate/src/hcl.js","webpack:///./node_modules/d3-interpolate/src/hsl.js","webpack:///./node_modules/d3-interpolate/src/hue.js","webpack:///./node_modules/d3-interpolate/src/index.js","webpack:///./node_modules/d3-interpolate/src/lab.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/piecewise.js","webpack:///./node_modules/d3-interpolate/src/quantize.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-path/src/index.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-polygon/src/area.js","webpack:///./node_modules/d3-polygon/src/centroid.js","webpack:///./node_modules/d3-polygon/src/contains.js","webpack:///./node_modules/d3-polygon/src/cross.js","webpack:///./node_modules/d3-polygon/src/hull.js","webpack:///./node_modules/d3-polygon/src/index.js","webpack:///./node_modules/d3-polygon/src/length.js","webpack:///./node_modules/d3-quadtree/src/add.js","webpack:///./node_modules/d3-quadtree/src/cover.js","webpack:///./node_modules/d3-quadtree/src/data.js","webpack:///./node_modules/d3-quadtree/src/extent.js","webpack:///./node_modules/d3-quadtree/src/find.js","webpack:///./node_modules/d3-quadtree/src/index.js","webpack:///./node_modules/d3-quadtree/src/quad.js","webpack:///./node_modules/d3-quadtree/src/quadtree.js","webpack:///./node_modules/d3-quadtree/src/remove.js","webpack:///./node_modules/d3-quadtree/src/root.js","webpack:///./node_modules/d3-quadtree/src/size.js","webpack:///./node_modules/d3-quadtree/src/visit.js","webpack:///./node_modules/d3-quadtree/src/visitAfter.js","webpack:///./node_modules/d3-quadtree/src/x.js","webpack:///./node_modules/d3-quadtree/src/y.js","webpack:///./node_modules/d3-random/src/bates.js","webpack:///./node_modules/d3-random/src/defaultSource.js","webpack:///./node_modules/d3-random/src/exponential.js","webpack:///./node_modules/d3-random/src/index.js","webpack:///./node_modules/d3-random/src/irwinHall.js","webpack:///./node_modules/d3-random/src/logNormal.js","webpack:///./node_modules/d3-random/src/normal.js","webpack:///./node_modules/d3-random/src/uniform.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","webpack:///./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack:///./node_modules/d3-scale-chromatic/src/colors.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack:///./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack:///./node_modules/d3-scale-chromatic/src/index.js","webpack:///./node_modules/d3-scale-chromatic/src/ramp.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/diverging.js","webpack:///./node_modules/d3-scale/src/identity.js","webpack:///./node_modules/d3-scale/src/index.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-scale/src/quantile.js","webpack:///./node_modules/d3-scale/src/quantize.js","webpack:///./node_modules/d3-scale/src/sequential.js","webpack:///./node_modules/d3-scale/src/sequentialQuantile.js","webpack:///./node_modules/d3-scale/src/symlog.js","webpack:///./node_modules/d3-scale/src/threshold.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/create.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/index.js","webpack:///./node_modules/d3-selection/src/local.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/mouse.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/point.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-selection/src/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/touch.js","webpack:///./node_modules/d3-selection/src/touches.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/d3-shape/src/areaRadial.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/radial.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/index.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/lineRadial.js","webpack:///./node_modules/d3-shape/src/link/index.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/pointRadial.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-time-format/src/index.js","webpack:///./node_modules/d3-time-format/src/isoFormat.js","webpack:///./node_modules/d3-time-format/src/isoParse.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/index.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-timer/src/index.js","webpack:///./node_modules/d3-timer/src/interval.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-transition/src/active.js","webpack:///./node_modules/d3-transition/src/index.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/constant.js","webpack:///./node_modules/d3-voronoi/src/index.js","webpack:///./node_modules/d3-voronoi/src/point.js","webpack:///./node_modules/d3-voronoi/src/voronoi.js","webpack:///./node_modules/d3-zoom/src/constant.js","webpack:///./node_modules/d3-zoom/src/event.js","webpack:///./node_modules/d3-zoom/src/index.js","webpack:///./node_modules/d3-zoom/src/noevent.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./node_modules/d3/dist/package.js","webpack:///./node_modules/d3/index.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/fast-memoize/src/index.js","webpack:///./node_modules/focus-trap/dist/focus-trap.esm.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/intl-messageformat-parser/lib/index.js","webpack:///./node_modules/intl-messageformat-parser/lib/src/normalize.js","webpack:///./node_modules/intl-messageformat-parser/lib/src/parser.js","webpack:///./node_modules/intl-messageformat-parser/lib/src/skeleton.js","webpack:///./node_modules/intl-messageformat-parser/lib/src/types.js","webpack:///./node_modules/intl-messageformat/lib/index.js","webpack:///./node_modules/intl-messageformat/lib/src/core.js","webpack:///./node_modules/intl-messageformat/lib/src/error.js","webpack:///./node_modules/intl-messageformat/lib/src/formatters.js","webpack:///./node_modules/jquery-ui/ui/core.js","webpack:///./node_modules/jquery-ui/ui/effect.js","webpack:///./node_modules/jquery-ui/ui/keycode.js","webpack:///./node_modules/jquery-ui/ui/version.js","webpack:///./node_modules/jquery-ui/ui/widgets/datepicker.js","webpack:///./node_modules/left-pad/index.js","webpack:///./node_modules/nouislider/dist/nouislider.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/prop-types/lib/has.js","webpack:///./node_modules/rc-slider/es/Handles/Handle.js","webpack:///./node_modules/rc-slider/es/Handles/index.js","webpack:///./node_modules/rc-slider/es/Marks/Mark.js","webpack:///./node_modules/rc-slider/es/Marks/index.js","webpack:///./node_modules/rc-slider/es/Slider.js","webpack:///./node_modules/rc-slider/es/Steps/Dot.js","webpack:///./node_modules/rc-slider/es/Steps/index.js","webpack:///./node_modules/rc-slider/es/Tracks/Track.js","webpack:///./node_modules/rc-slider/es/Tracks/index.js","webpack:///./node_modules/rc-slider/es/context.js","webpack:///./node_modules/rc-slider/es/hooks/useDrag.js","webpack:///./node_modules/rc-slider/es/hooks/useOffset.js","webpack:///./node_modules/rc-slider/es/index.js","webpack:///./node_modules/rc-slider/es/util.js","webpack:///./node_modules/rc-util/es/Dom/canUseDom.js","webpack:///./node_modules/rc-util/es/KeyCode.js","webpack:///./node_modules/rc-util/es/React/isFragment.js","webpack:///./node_modules/rc-util/es/hooks/useEvent.js","webpack:///./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack:///./node_modules/rc-util/es/hooks/useMemo.js","webpack:///./node_modules/rc-util/es/hooks/useMergedState.js","webpack:///./node_modules/rc-util/es/hooks/useState.js","webpack:///./node_modules/rc-util/es/index.js","webpack:///./node_modules/rc-util/es/isEqual.js","webpack:///./node_modules/rc-util/es/ref.js","webpack:///./node_modules/rc-util/es/utils/get.js","webpack:///./node_modules/rc-util/es/utils/set.js","webpack:///./node_modules/rc-util/es/warning.js","webpack:///./node_modules/react-dom/cjs/react-dom.development.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react-intersection-observer/esm/index.js","webpack:///./node_modules/react-intl/lib/index.js","webpack:///./node_modules/react-intl/lib/src/components/createFormattedComponent.js","webpack:///./node_modules/react-intl/lib/src/components/dateTimeRange.js","webpack:///./node_modules/react-intl/lib/src/components/injectIntl.js","webpack:///./node_modules/react-intl/lib/src/components/message.js","webpack:///./node_modules/react-intl/lib/src/components/plural.js","webpack:///./node_modules/react-intl/lib/src/components/provider.js","webpack:///./node_modules/react-intl/lib/src/components/relative.js","webpack:///./node_modules/react-intl/lib/src/components/useIntl.js","webpack:///./node_modules/react-intl/lib/src/utils.js","webpack:///./node_modules/react-is/cjs/react-is.development.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react/cjs/react.development.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/scheduler/cjs/scheduler-tracing.development.js","webpack:///./node_modules/scheduler/cjs/scheduler.development.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/tracing.js","webpack:///./node_modules/scroll-lock/dist/scroll-lock.js","webpack:///./node_modules/shallow-equal/objects/index.js","webpack:///./node_modules/tabbable/dist/index.esm.js","webpack:///./node_modules/tippy.js/dist/tippy.esm.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/wnumb/wNumb.js","webpack:///./src/js/app.js","webpack:///./src/js/calculator/components/CalculatorForm.js","webpack:///./src/js/calculator/components/CalculatorMpz.js","webpack:///./src/js/calculator/components/CalculatorWrapper.js","webpack:///./src/js/calculator/components/CurrencyInput.js","webpack:///./src/js/calculator/components/Tooltip.js","webpack:///./src/js/calculator/constants.js","webpack:///./src/js/calculator/functions/formatCurrency.js","webpack:///./src/js/class/Suggest.js","webpack:///./src/js/class/SuggestMenu.js","webpack:///./src/js/components/ajaxForm.js","webpack:///./src/js/components/ajaxLink.js","webpack:///./src/js/components/calculator.js","webpack:///./src/js/components/calculatorGlobal.js","webpack:///./src/js/components/chart.js","webpack:///./src/js/components/customFonds.js","webpack:///./src/js/components/customSlider.js","webpack:///./src/js/components/datepicker.js","webpack:///./src/js/components/formEnable.js","webpack:///./src/js/components/highlight.js","webpack:///./src/js/components/inputBox.js","webpack:///./src/js/components/inputToggle.js","webpack:///./src/js/components/keepMinHeight.js","webpack:///./src/js/components/menuMain.js","webpack:///./src/js/components/modal.js","webpack:///./src/js/components/modalPlugins/emmitModalAction.js","webpack:///./src/js/components/person.js","webpack:///./src/js/components/persons.js","webpack:///./src/js/components/portfolio.js","webpack:///./src/js/components/psCalculator.js","webpack:///./src/js/components/psCalculatorGlobal.js","webpack:///./src/js/components/questions.js","webpack:///./src/js/components/radioHide.js","webpack:///./src/js/components/remove.js","webpack:///./src/js/components/shareSlider.js","webpack:///./src/js/components/showPassword.js","webpack:///./src/js/components/slider.js","webpack:///./src/js/components/suggest.js","webpack:///./src/js/components/tabs.js","webpack:///./src/js/components/tippy.js","webpack:///./src/js/components/toggle.js","webpack:///./src/js/patria/addressAutocomplete.js","webpack:///./src/js/patria/form/contractTerminate.js","webpack:///./src/js/patria/form/strategyChange.js","webpack:///./src/js/patria/initAddressAutocomplete.js","webpack:///./src/js/patria/inputValidation.js","webpack:///./src/js/patria/utils/modal.js","webpack:///./src/js/ps-calculator/components/CalculatorForm.js","webpack:///./src/js/ps-calculator/components/CalculatorMpz.js","webpack:///./src/js/ps-calculator/components/CalculatorWrapper.js","webpack:///./src/js/ps-calculator/components/CurrencyInput.js","webpack:///./src/js/ps-calculator/components/DonutChart.js","webpack:///./src/js/ps-calculator/components/Tooltip.js","webpack:///./src/js/ps-calculator/constants.js","webpack:///./src/js/ps-calculator/functions/formatCurrency.js","webpack:///./src/js/tools/parseHTML.js","webpack:///./src/js/tools/svg4everybody.js","webpack:///external \"jQuery\""],"names":["first","arr","last","length","clone","slice","call","map","curry","fn","flatten","reduce","acc","cur","concat","join","delimiter","inArray","value","indexOf","arrayOrEmpty","groupBy","prop","_objectSpread","_defineProperty","emptyBySize","size","Array","apply","hasClass","node","className","classList","contains","trim","addClass","add","removeClass","remove","replace","toggleClass","toggle","boolClass","bool","create","target","subscribers","withEmmiter","on","type","isFunction","_toConsumableArray","one","_event_once","off","Object","keys","forEach","filter","fnI","is","trigger","data","context","arguments","undefined","bind","log","console","global","delegate","selector","callback","event","query","currentTarget","find","handler","addEventListener","removeEventListener","f","_len","args","_key","_len2","next","_key2","pipe","_len3","fns","_key3","x","v","tap","arg","invoke","fnName","obj","debounce","wait","func","timeout","_len4","_key4","later","clearTimeout","setTimeout","cache","src","Promise","resolve","reject","s","document","createElement","async","onload","onerror","head","appendChild","api","loadScript","then","window","Vimeo","catch","onYouTubeIframeAPIReady","YT","a","b","_typeof","isObject","isNil","isWindow","parentNode","removeChild","empty","textContent","wrap","wrapper","insertBefore","unwrap","parent","append","content","prepend","firstChild","before","after","nextSibling","byID","getElementById","byName","getElementsByName","querySelectorAll","matches","componentsload","chart","portfolio","showPassword","tabs","modal","radioHide","person","slider","tippy","calculatorOriginal","calculator","suggest","persons","customSlider","inputBox","inputToggle","datepicker","questions","customFonds","formEnable","contractTermination","strategyChange","initAddressAutocomplete","components","keepMinHeight","menuMain","calculatorGlobalOriginal","calculatorGlobal","ajaxForm","ajaxLink","highlight","inputValidation","App","run","targetNode","body","component","init","_ref","element","_ref2","_component$destroy","destroy","initComponent","refreshChart","refreshTippy","getElementsByClassName","refreshModals","refreshToggles","getCurrentOffers","mpu","_OFFERS$find","OFFERS","offer","limit","getRTaxDeduction","MAX_YEAR_TAX_DEDUCTION","Math","min","max","MIN_TAX_MPU","MONTHS_PER_YEAR","TAX","getRstp","STP_MIN_MPU","STP_MAX_MPU","STP_PERC","STP_FIX","getResult","age","mpz","interest","total","rpu","rpz","rstp","MAX_AGE","newAmount","earnings","totalPu","totalPz","totalStp","totalEarnings","getMonthRent","RENT_YEARS_COUNT","CalculatorForm","action","totalPosts","intl","useIntl","offers","useMemo","_useState","useState","_useState2","_slicedToArray","currentOffer","setCurrentOffer","_useState3","_useState4","customMpu","setCustomMpu","_useState5","_useState6","currentMpz","setCurrentMpz","currentMpu","useEffect","onMpzChange","newRent","INTERESTS","oldRent","onCustomMpu","number","parseFloat","isNaN","onIncrement","preventDefault","onDecrement","onOfferClick","dataset","openModal","customModal","createModal","medium","url","modalOptions","methods","open","React","formatCurrency","sum","index","rstpColor","MAX_YEAR_STP","tax","taxColor","key","onClick","style","backgroundColor","color","htmlFor","CurrencyInput","onChange","autoFocus","id","Tooltip","width","flex","href","title","viewBox","height","d","Fragment","method","CalculatorMpz","newCurrentMpz","setNewCurrentMpz","IntlProvider","locale","onSubmit","fillRule","formatValue","formatCurrencyNoSymbol","transform","CalculatorWrapper","props","setType","setMpu","setMpz","_useState7","_useState8","setAge","_useState9","_useState10","setTotal","_useState11","_useState12","setTotalPu","_useState13","_useState14","setTotalPz","_useState15","_useState16","setTotalStp","_useState17","_useState18","setTotalEarnings","_useState19","_useState20","setTotalPosts","newProps","onAge","parseInt","onMpu","onMpz","onType","onTotal","onTotalPu","onTotalPz","ontTotalStp","onTotalEarnings","onTotalPosts","debug","display","marginBottom","defaultValue","_extends","rest","_objectWithoutProperties","_excluded","isFocused","setFocused","onChangeState","getValue","onFocus","onBlur","memo","tooltipEl","useRef","current","instance","allowHTML","ref","xmlns","stroke","fill","cx","cy","r","DPS","TRF","shouldRound","formatNumber","round","currency","Suggest","options","_classCallCheck","input","minLength","typeInterval","loadingClass","typingClass","focusClass","filledClass","parseResponse","isResult","typeTimer","URL","location","searchTerm","ajax","emmitter","isDefaultPrevented","keydown","keyup","keypress","focus","blur","_createClass","setAttribute","closest","e","_this","which","ajaxAbort","ajaxRemove","item","abort","_this2","o","FormData","searchParams","set","getAttribute","controller","AbortController","signal","fetch","response","headers","get","includes","json","text","warn","respond","push","clear","SuggestMenu","selectedClass","visibleClass","items","selectedIndex","isOpen","handleMouseEnter","handleMouseDown","handleClick","handleSuggestStart","handleSuggestEnd","handleSuccess","handleTypeStart","handleTypeClear","innerHTML","hide","clearIndex","handleArrUp","handleArrDown","handleEnter","setIndex","itemNode","_regeneratorRuntime","t","prototype","n","hasOwnProperty","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","Generator","Context","makeInvokeMethod","tryCatch","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","values","g","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","Error","done","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","_catch","delegateYield","getWrapper","submittingButton","_asyncToGenerator","_callee","wrapperNode","ajaxMethod","fetchConfig","_callee$","_context","querySelector","click","openLinkBeforeCloseModal","t0","error","_x","_x2","_callee2","submitter","submitterAction","_callee2$","_context2","_x3","_x4","ajaxUrl","ajaxMedium","close","JSON","parse","ReactDOM","render","_node$dataset","chartElements","initChart","jsonScriptElement","Chart","chartType","configs","donut","labels","label","show","interaction","enabled","legend","axis","bar","format","toString","tooltip","tick","getFullYear","grid","line","padding","top","right","bottom","left","formatFullDate","toFixed","formatShortDate","count","Number","position","point","config","bindto","assign","deepmerge","arrayMerge","dontMerge","columns","svg","d3","attr","arc","innerRadius","outerRadius","myScale","domain","range","PI","_ref3","_ref4","pathArc","startAngle","endAngle","colors","c3","generate","repositionLabels","destination","source","date","leftpad","getDate","getMonth","substr","elements","getSums","sliders","onSliderUpdate","noUiSlider","isMax","MAX","sumNode","alertNode","diffNode","setLimit","start","sliderNodes","createSlider","maxNodes","listen","tooltips","money","wNumb","decimals","thousand","suffix","months","years","dataSliderId","$","setDefaults","dateFormat","firstDay","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","isRTL","showMonthAfterYear","yearSuffix","inline","showButtonPanel","$datepicker","technicalDateFormat","minDateAttr","maxDateAttr","datepickerTimer","minDate","maxDate","parseDate","beforeShow","$this","onClose","form","button","enable","checked","removeAttribute","scroll","documentElement","scrollTop","offset","getBoundingClientRect","scrollTo","behavior","animationName","box","disabled","contents","tagName","targetHeight","clientHeight","minHeight","mainMenuOpenStatus","sideMenuOpenStatus","mainMenuOpen","status","sideMenuOpen","mainToggle","sideToggle","submenuToggles","submenu","isMainMenu","isMainToggle","isSideMenu","isSideToggle","headerTpl","closeOnBgClick","removeOnClose","plugins","emmitModalAction","onModalContentLoaded","slide","closeButton","inner","addScrollableSelector","commonModals","initModal","modalSelector","lgModals","customWrapperClass","modals","_event","isOpened","fragments","Boolean","arrow","types","inputHidden","wrapPatria","slidersNode","shareSliders","getSlidersSum","previousValue","sliderNode","wraps","addPerson","itemsNode","state","parseHTML","itemTpl","shareElement","shareItemTpl","shareItemsNode","newPerson","setState","onAddPersonClick","removePerson","_state","idx","onRemovePersonClick","onNameChange","inputs","parentElement","children","val","newPersons","update","shareItems","names","shareTwoNode","shareMultipleNode","noneNode","newState","_getSlidersSum","portfolios","checkboxs","checkbox","isChecked","chartLine","opacity","currentInput","li","liData","nextLiId","nextQelement","scrollIntoView","onEditClick","inps","inp","tools","tool","offsetHeight","to","from","_ref$start","_ref$limit","onAmountAddClick","amountToAdd","newValue","onInputChange","onSliderSet","_slider$input","buttonMinus","buttonPlus","_ref2$start","_ref2$limit","updateOptions","getAddition","attValue","defaults","step","connect","split","suggestFixed","inputWrapper","menu","address","suggestMenu","link","parentRect","itemRect","onButtonClick","submit","onChangeButtonClick","onSuggestItemClick","onEditWithSuggestClick","onInputFocusOrInput","onInputBlur","fragment","handleInputTooltip","_reference$closest","reference","isErrorTooltip","getCommonOptions","isInputTooltip","isInputErrorTooltip","holder","interactive","triggerTarget","appendTo","onHide","inputFocused","activeElement","tippyContent","tippyId","onShow","template","maxWidth","modalScrollingElement","buttons","scrolled","SMARTFORM_INPUT_WRAPPER_ACTIVE_CLASS","SMARTFORM_ROW_CLASS_HIDDEN","SMARTFORM_ROW_CLASS","SMARTFORM_FILLED_CLASS","SMARTFORM_SELECTED_CLASS","SMARTFORM_SWITCHER_BUTTON","SMARTFORM_SWITCHER_AUTOCOMPLETE","SMARTFORM_INPUT_WRAPPER","SMARTFORM_ROW_AUTOMATIC","SMARTFORM_ROW_MANUAL","SMARTFORM_INSTANCE_ATTRIBUTE","SMARTFORM_INPUT_CLASS","SMARTFORM_BUTTON_EDIT","SMARTFORM_BUTTON_TYPE","SMARTFORM_SELECT_STATE","SMARTFORM_COUNTRY_SHOW_WHISPER","AddressAutocomplete","selectState","smartformInstanceName","getInstanceNameFromAttribute","switcherButtons","switcherButtonAutocomplete","wrapperInstance","smartformInstanceInputs","rowAutomatic","rowManual","changeButton","addressTypeButton","isFilledTypeAutomatic","historyChangeSelectValue","initSmartFormInput","initHandleWatch","handleRegisterWatchSelectState","handleToggleWrapper","registerHandlechangeTypeFilled","registerHandlersInput","registerHandleChangeButton","addressDescriptor","getOwnPropertyDescriptor","changeFilledAddress","params","checkIsFilledAllInputAddress","closeWrapper","result","isDeskopPlatform","matchMedia","handleInputChange","removeClassFromElement","handleInputFocus","clearOtherInputAddress","clearAllInputAddressValues","setClassOnElement","handleChangeSelectState","handleShowWhisper","setFilledTypeAutomatic","toggleSwitcherAddressButon","setSmartFormWhisperCountry","handleShowOthersInputs","addressTypeChangeValue","country","smartform","getInstance","setCountry","clickOutsideWrapper","_this3","switcherButton","handleChangeTypeFilled","STEPS","HIDDEN_CLASS","BUTTONS_NEXT_STEP","FORM_CLASS","OLD_PENSION_TYPES","RECALTULATION_INPUT_CLASS","RECALTULATION_INPUT_VALUE","FREQUENCY_MAP","CTermination","CTerminationOldPension","oldPensionTypes","CTerminationOldPensionTypeCalculation","steps","buttonsNextStep","currentStep","prepareFormSteps","registerHandleClickSubmit","iniPrepareSteps","dataStep","handleClickButton","goToStep","findStep","removeAllActiveSteps","setActiveStep","boxes","initChangeBoxes","boxChange","resetActivatedSliders","findInputs","itemInput","oldPension","totalMoneyGetInput","selectFrequency","inputPeriod","inputValueText","inputValue","frequencyValue","periodValue","totalMoneyGetValue","inputParseInt","loadFirstDefaultValue","registerChangeFrequency","registerChangePeriod","frequencyValueMapping","recalculationValue","_this4","changeValueInInput","changeValueInSlider","insertedValueIntoInput","numberThounsandSeparator","resultValue","roundedResultValue","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","FORM_SUBMIT_BUTTON","FORM_QUESTION_ITEMS_CLASS","FORM_QUESTION_SELECED_CLASS","FORM_NUMBERS_OF_QUESTIONS","ATTRIBUTE_NAME","StrategyChange","submitFormButton","initHandleChangeInputs","handleChangeInput","isInputImmediatelySend","handleSendForm","checkIsAllQuestionAnswered","getAllSelectedAnswers","SMARTFORM_ROOT_INPUT_CLASS","SMARTFORM_INPUTS","Z_INDEX","DEFAULT_CONFIG","inModals","autoCompleteAddress","InitAddressAutocomplete","smartformIntances","checkInitSmartformScript","initSmartForm","rebindAllForms","initSmartformInModals","smartformIntance","initCustomWrapper","setSmartformBoxesOracleEnabled","setSmartformZIndex","setZIndex","addressAutocompleteInstance","instanceRootElement","instanceNameId","changePositionSmartboxAddressList","instanceId","smartformBox","getBox","setPopupContainerId","setPopupAttributePosition","setSmartformBoxOracleEnabled","boxID","setOracleEnabled","handleValidation","rules","RegExp","test","toUpperCase","validationRules","clipboardData","getData","STRATEGY_VALUES","getStrategyItems","code","calculateTotalByCode","getOriginalValues","pairValues","totalValues","originalValues","totalValue","originalValue","calculateResult","pairedValues","formatPercentage","getMinSavingDuration","dateSigningDraft","draftDate","Date","changeDate","getTime","minSavingDuration","draftYear","ageAtSigning","minAgeForWithdraw","finalAgeForWithdraw","remainingYears","strategyItems","VALORIZATION","valorization","setValorization","dynamicPercentage","setDynamicPercentage","updatedStrategyItems","totalValuesByCode","calculatedResult","openModalCustom","newPercentage","isInitialGreatestValorization","isGreatestValorization","setIsGreatestValorization","prevValue","remainder","onSliderChange","minSliderValue","floor","chartDataDanovaUspora","setChartDataDanovaUspora","chartDataStatPrispiva","setChartDataStatPrispiva","percentageTax","percentageRstp","percentage","selectedOption","setSelectedOption","handleChange","resetCurrencyInput","_useInView","useInView","threshold","rootMargin","triggerOnce","btnRef","isSticky","inView","marks","minSliderMax","decrementDisabled","Slider","DonutChart","clsx","_props$decrementDisab","chartRef","renderDonutChart","_ref5","existingSvg","getPercentageColor","propTypes","PropTypes","shape","arrayOf","oneOfType","string","isRequired","objectOf","rxhtmlTag","rtagName","rhtml","wrapMap","option","thead","col","tr","td","_default","html","tmp","tag","j","createDocumentFragment","createTextNode","exec","toLowerCase","lastChild","newerIEUA","webkitUA","olderEdgeUA","edgeUA","inIframe","self","navigator","userAgent","match","default"],"mappings":";QAAA;QACA;QACA;QACA;;;QAGA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;;;QAGA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;;;QAIA;QACA;QACA,yCAAyC,gCAAgC;QACzE;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;;;;;;;;;;;;ACrMA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACJA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,mC;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACNA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;;ACfA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACbA;AAAA;AAAe;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,+BAA+B;AAC5E;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC5BA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAA;AAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEe;AACf,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA,QAAQ,+DAAc;AACtB,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAA0E;AAC3D;AACf;AACA,eAAe,6EAA4B;AAC3C;;AAEA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AClBA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACY;AACV;AACjC;AACf,SAAS,+DAAc,SAAS,qEAAoB,YAAY,gEAAe;AAC/E,C;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACE;AACA;AACjC;AACf,SAAS,+DAAc,SAAS,gEAAe,SAAS,gEAAe;AACvE,C;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAoD;AACJ;AACI;AACrC;AACf,SAAS,kEAAiB,SAAS,gEAAe,SAAS,kEAAiB;AAC5E,C;;;;;;;;;;;;ACLA;AAAA;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;ACdA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,+BAA+B;AAC5E;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;;;;;AC9BA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACJA,mCAAmC,mBAAO,CAAC,6GAAgC;;AAE3E;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0C;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+C;;;;;;;;;;;ACfA,qBAAqB,mBAAO,CAAC,iFAAkB;;AAE/C,2BAA2B,mBAAO,CAAC,6FAAwB;;AAE3D,sBAAsB,mBAAO,CAAC,mFAAmB;;AAEjD;AACA;AACA;;AAEA,gC;;;;;;;;;;;ACVA,wBAAwB,mBAAO,CAAC,uFAAqB;;AAErD,sBAAsB,mBAAO,CAAC,mFAAmB;;AAEjD,wBAAwB,mBAAO,CAAC,uFAAqB;;AAErD;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;ACvTA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAA4D;AACD;AAC3D;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA,0CAA0C,uEAAgC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAmB;AACzC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACI;AAC6G;AAClJ;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,IAAI,wDAAS;AACb,yCAAyC,uBAAuB;AAChE;AACA;AACA,6CAA6C,sDAAe,CAAC,+BAA+B;AAC5F;AACA;AACA;AACA;AACA,yBAAyB,sDAAe;AACxC;AACA;AACA,yBAAyB,qDAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA,6BAA6B,uDAAgB;AAC7C;AACA;AACA,6BAA6B,uDAAgB;AAC7C;AACA;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ,GAAG;AACtB;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACI;AAC0I;AAC3H;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,qDAAc;AAC/B;AACA;AACA,iBAAiB,sDAAe;AAChC;AACA,yCAAyC,sDAAe,CAAC,+BAA+B;AACxF;AACA;AACA;AACA;AACA,qBAAqB,sDAAe;AACpC;AACA;AACA,qBAAqB,qDAAc;AACnC;AACA;AACA;AACA;AACA;AACA,yBAAyB,kEAA2B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA,6BAA6B,uDAAgB;AAC7C;AACA;AACA,6BAA6B,uDAAgB;AAC7C;AACA;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,IAAI,wDAAS;AACb,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ,GAAG;AACpC,yBAAyB;AACzB,IAAI,wEAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnHA;AAAA;AAAA;AAAqC;AAC9B;AACP;AACA;AACA,QAAQ,wDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAsE;AACtE;AACA;AACA;AACA;AACA;AACO;AACP,gBAAgB,0FAAwB;AACxC;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACE;AACV;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,qDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gEAAW;AACxB;AACA,qDAAqD,iBAAiB;AACtE;AACA,mDAAmD,4BAA4B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iBAAiB,sDAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;;ACnKA;AAAA;AAAA;AAAgF;AACzE;AACP,gBAAgB,oGAA6B;AAC7C;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAgF;AACzE;AACP,gBAAgB,oGAA6B;AAC7C;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AAAsE;AACjC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,gBAAgB,0FAAwB;AACxC,iBAAiB,wDAAW;AAC5B,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACX;AACf;AACQ;AACY;AACU;AACb;AACI;AACzB;AACK;AACkB;AAC5D;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,2BAA2B,sFAAsB;AACjD,kBAAkB,4EAAiB;AACnC;AACA,kBAAkB,4DAAS;AAC3B;AACA,mBAAmB,4DAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAS;AACnC;AACA;AACA;AACA;AACA,iBAAiB,4DAAS;AAC1B,oBAAoB,4DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gFAAmB,YAAY,iDAAiD;AAC7F;AACA;AACA,mBAAmB,0FAAwB,YAAY,iDAAiD;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAS;AAC3B,cAAc,4DAAS;AACvB,eAAe,4DAAS;AACxB,gBAAgB,4DAAS;AACzB,cAAc,4DAAS;AACvB,eAAe,4DAAS;AACxB,iBAAiB,4DAAS;AAC1B,iBAAiB,4DAAS;AAC1B,uBAAuB,4DAAS;AAChC;AACA,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,4DAAS;AACvB,oBAAoB,4DAAS;AAC7B;AACA,oBAAoB,4DAAS;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,8EAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kFAAoB;AAC7C;AACA;AACA;AACA,6CAA6C,sDAAe,CAAC,+BAA+B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnLA;AAAA;AAAA;AAAA;AAAA;AAAkC;AAC+B;AACV;AACvD;AACA;AACA;AACA;AACA;AACO;AACP,QAAQ,qDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oFAAqB,MAAM,0EAAgB;AACtD;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACD;AACqB;AACV;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,QAAQ,qDAAQ;AAChB;AACA;AACA;AACA,QAAQ,qDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gEAAW;AACzB;AACA,qDAAqD,iBAAiB;AACtE,cAAc,gEAAW;AACzB;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA;AACA,uDAAuD,8BAA8B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oFAAqB,MAAM,0EAAgB;AAClE,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAgB;AAC3C,yBAAyB,oFAAqB;AAC9C,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClGA;AAAA;AAAA;AAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kBAAkB,qDAAQ;AAC1B;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAqC;AACsF;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,IAAI,wDAAS,CAAC,iDAAI;AAClB,IAAI,wDAAS;AACb;AACA;AACA,eAAe,yDAAY;AAC3B;AACA,iBAAiB,oDAAO;AACxB;AACA;AACA;AACA;AACA,eAAe,0DAAa;AAC5B,aAAa,yDAAY;AACzB,cAAc,yDAAY;AAC1B,gBAAgB,wDAAW;AAC3B,gBAAgB,wDAAW;AAC3B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI,GAAG,IAAI,MAAM,IAAI,cAAc,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,WAAW,IAAI;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,EAAE,MAAM,WAAW;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL,gDAAgD,4CAA4C,EAAE,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,wCAAwC,MAAM;AAC9C,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,CAAC,sDAAQ,GAAG,oBAAoB,6CAA6C;AAC7H,0CAA0C,sDAAQ,CAAC,sDAAQ,GAAG,oBAAoB,+CAA+C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAwC,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACO;AACP,kCAAkC,OAAO;AACzC;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACpSA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBP;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAmE;AAC9B;AACkC;AACvE,2CAA2C,EAAE,OAAO,EAAE;AACtD,sBAAsB,EAAE;AACxB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,sFAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAS;AACb,SAAS,0FAAwB;AACjC;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4D;AACrD;AACP;AACA,WAAW,gFAAmB;AAC9B;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAQ;AAC5B;AACA,mEAAmE,qBAAqB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;AC9DA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kEAAkE,wBAAwB,EAAE;AAC5F;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAsF;AACtF;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,0GAAgC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0GAAgC;AACzC,SAAS,0GAAgC;AACzC;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAA2D;AACC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kBAAkB;AAClB,2DAA2D,gCAAgC;AAC3F;AACA,+CAA+C,uEAAgC;AAC/E,8BAA8B,gFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;AAA2D;AACC;AAC5D;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2DAA2D,gCAAgC;AAC3F;AACA,+CAA+C,uEAAgC;AAC/E,8BAA8B,gFAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACoC;AACZ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAY;AAChC,mBAAmB,gGAA2B;AAC9C;AACA,KAAK;AACL;AACA;AACA,6BAA6B,oFAAqB;AAClD;AACA;AACA;AACA,uBAAuB,2DAAY;AACnC;AACA;AACA;AACA;AACA,QAAQ,gGAA2B;AACnC;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3DA;AAAA;AAAA;AAAwC;AACxC;AACA;AACA;AACO;AACP;AACA,WAAW,2DAAc;AACzB;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAkE;AAC7B;AAC9B;AACP,gBAAgB,sFAAsB;AACtC,iBAAiB,wDAAW;AAC5B,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmC;AACe;AAChB;AACQ;AAC1C;AACA;AACA;AACO;AACP,8BAA8B,sDAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAc;AACnC;AACA;AACA,qBAAqB,8DAAU;AAC/B;AACA;AACA,qBAAqB,sEAAc;AACnC;AACA,yBAAyB,8DAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qDAAM;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACjC;AACO;AACQ;AACyB;AACxB;AAC0B;AACvC;AACrC;AACA;AACA;AACO;AACP;AACA;AACA,2BAA2B,sFAAsB;AACjD,6DAA6D,qDAAQ;AACrE;AACA,kBAAkB,4DAAS;AAC3B;AACA,0BAA0B,4DAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAa;AACzB;AACA;AACA;AACA,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA,IAAI,8FAA0B,eAAe,qCAAqC;AAClF;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAc,YAAY,yCAAyC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAAS;AAC5B;AACA,IAAI,gGAA2B;AAC/B,yBAAyB,4DAAS;AAClC;AACA;AACA;AACA,sBAAsB,4DAAS;AAC/B;AACA,sBAAsB,4DAAS;AAC/B;AACA;AACA;;;;;;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgE;AAC7B;AACiB;AACN;AAC9C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wEAAe;AAC5B;AACA,SAAS;AACT;AACA;AACA,iCAAiC,oFAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAa,EAAE,6FAA6F;AACvH;;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AAAqD;AACQ;AAC7D;AACA;AACA;AACO;AACP,eAAe,wEAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gFAAmB;AAClC,eAAe,gFAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,gFAAmB;AAClC;AACA,eAAe,gFAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAyC;AAC8B;AACI;AAC3E;AACA;AACA;AACO;AACP,6BAA6B,+BAA+B;AAC5D;AACA;AACA,gBAAgB,4DAAS;AACzB;AACA,mBAAmB,4DAAS;AAC5B,mCAAmC,0FAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAS;AACnC,uBAAuB,4DAAS;AAChC,eAAe,4DAAS;AACxB,+BAA+B,8FAA0B;AACzD;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qDAAM;AACtB;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAgD;AACzC;AACP;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAM;AAC1B;AACA;AACA;AACA,gBAAgB,2DAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qDAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACW;AACrD;AACA,kEAAkE,EAAE;AACpE;AACA,QAAQ,EAAE;AACV;AACA,OAAO,EAAE;AACT;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,EAAE;AAC3D;AACA;AACA,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA,qDAAqD,EAAE,gCAAgC,EAAE;AACzF;AACA;AACA;AACA,oDAAoD,EAAE,MAAM,EAAE;AAC9D;AACA;AACA,2CAA2C,EAAE,yBAAyB,MAAM;AAC5E,oDAAoD,KAAK,GAAG,GAAG,GAAG;AAClE;AACA;AACA;AACA,+DAA+D,kCAAkC;AACjG;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF;AACA;AACA,kCAAkC,4CAA4C;AAC9E;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA;AACA,kCAAkC,+CAA+C;AACjF;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,MAAM,EAAE;AACjC,6DAA6D,MAAM;AACnE;AACA,uEAAuE,gCAAgC;AACvG;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,+BAA+B,EAAE;AACjC,yCAAyC,oCAAoC;AAC7E;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,EAAE;AAC7D;AACA;AACA,wDAAwD,EAAE,MAAM,EAAE,aAAa,EAAE,6BAA6B,EAAE;AAChH;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,mCAAmC,EAAE,gCAAgC,EAAE;AACvE;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,2DAA2D,GAAG,OAAO,gBAAgB;AACrF;AACA,gDAAgD,GAAG;AACnD;AACA,sCAAsC,EAAE;AACxC;AACA,qCAAqC,8CAA8C;AACnF;AACA,yBAAyB,EAAE;AAC3B;AACA,qCAAqC,EAAE;AACvC;AACA,qCAAqC,8CAA8C;AACnF;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA,iBAAiB,6BAA6B;AAC9C;AACA,gCAAgC,0DAAY;AAC5C;AACA,+CAA+C,+CAA+C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAA6C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uCAAuC;AAChE;AACA,6BAA6B,uCAAuC;AACpE;AACA;AACA;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA,qBAAqB,0CAA0C,GAAG,oCAAoC;AACtG;AACA;AACA;AACA,qBAAqB,wDAAwD;AAC7E;AACA,yBAAyB,sDAAsD;AAC/E;AACA;AACA,6BAA6B,8DAAU;AACvC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO,IAAI,EAAE,OAAO;AACjD,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpaA;AAAA;AAAA;AAAoC;AACpC;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,qCAAqC;AACrC,QAAQ,wDAAS;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAqC;AACH;AAClC;AACA;AACA;AACA;AACO;AACP,IAAI,wDAAS;AACb,YAAY,qDAAQ;AACpB,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAQ;AACpB;AACA;AACA,qBAAqB,qDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACjC;AACO;AACiD;AACzC;AAC1C;AACP;AACA,2BAA2B,sFAAsB;AACjD;AACA,6DAA6D,qDAAQ;AACrE;AACA;AACA,kBAAkB,4DAAS;AAC3B;AACA,yBAAyB,4DAAS;AAClC,IAAI,6GAA2B;AAC/B,YAAY,oEAAa;AACzB;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACP;AACgD;AAClC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,IAAI,wDAAS,CAAC,iDAAI;AAClB,IAAI,wDAAS;AACb,IAAI,wDAAS,CAAC,iDAAI;AAClB;AACA;AACA;AACA;AACA,cAAc,iGAAqB;AACnC;AACA,mBAAmB,gEAAW;AAC9B;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAA8E;AACvE;AACP,gBAAgB,kGAA4B;AAC5C;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAA8E;AACzC;AAC9B;AACP,gBAAgB,kGAA4B;AAC5C,iBAAiB,wDAAW;AAC5B,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACjC;AACO;AACQ;AACZ;AACrC,wCAAwC,IAAI,WAAW,IAAI;AACpD;AACP;AACA;AACA;AACA,2BAA2B,sFAAsB;AACjD;AACA,6DAA6D,qDAAQ;AACrE,kBAAkB,4DAAS;AAC3B;AACA,0BAA0B,4DAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAa;AACzB;AACA;AACA,0BAA0B,4DAAS;AACnC,4BAA4B,4DAAS;AACrC;AACA,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAuD;AAClB;AAC9B;AACP,uBAAuB,0EAAgB;AACvC;AACA,mDAAmD,4BAA4B;AAC/E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,wDAAS;AACrB,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACiC;AACtB;AACG;AAC5C;AACP;AACA,IAAI,wDAAS,CAAC,iDAAI;AAClB,IAAI,wDAAS,CAAC,iDAAI;AAClB;AACA;AACA;AACA,uBAAuB,0FAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAQ;AACpB;AACA;AACA;AACA,oCAAoC,qDAAQ;AAC5C,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,sDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,WAAW,oEAAa;AACxB;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAqC;AACP;AAC9B;AACA;AACA;AACA;AACO;AACP,IAAI,wDAAS,CAAC,iDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACE;AACd;AAC4B;AAChE;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,oEAAa;AACzB;AACA;AACA,YAAY,sEAAc;AAC1B;AACA;AACA,kBAAkB;AAClB;AACA,qEAAqE,qCAAqC;AAC1G;AACA,QAAQ,wDAAS;AACjB;AACA,QAAQ,wDAAS;AACjB;AACA,QAAQ,wDAAS;AACjB;AACA,QAAQ,wDAAS;AACjB;AACA;AACA,iCAAiC,oFAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACO;AAC0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kBAAkB,qDAAQ;AAC1B,kBAAkB,4DAAS;AAC3B;AACA;AACA,eAAe,sFAAsB;AACrC;AACA,WAAW,sFAAsB;AACjC;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAoC;AACpC;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,wDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7CA;AAAA;AAAA;AAAkC;AAClC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6E;AACpC;AACE;AACS;AACC;AACL;AACK;AACO;AACL;AACG;AACA;AACP;AACS;AAC1B;AACN;AACuB;AACb;AACK;AACE;AACE;AACY;AACb;AACM;AACC;AACC;AACA;AACK;AACD;AAChB;AACI;AACX;AACO;AACU;AACR;AACY;AACO;AACG;AACf;AACe;AACJ;AAC9B;AACG;AACwC;AAClB;AACS;AACqF;AACrG;AACZ;AACJ;AACL;AACQ;AACN;AACM;AACD;AACd;;;;;;;;;;;;;ACtDtB;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;;;;;;;;;;;;ACL7C;AAAU;;;;;;;;;;;;;ACAV;AAAU;;;;;;;;;;;;;ACAV;AAAU;;;;;;;;;;;;;ACAV;AAAU;;;;;;;;;;;;;ACAV;AAAU;;;;;;;;;;;;;ACAV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C,mDAAmD;AACnD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO,uDAAuD,IAAI;AAC3D;AACP,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4B;AACrB;AACP;AACA;AACO;AACP;AACA;AACmH;AACvF;AACkB;AACiD;AACzC;AACd;AACI;AACY;AACS;AAClB;;;;;;;;;;;;;AChB/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AAC+B;AACD;AACF;AACT;AAC4D;AACxE;AACE;AACN;AACc;AAClD;AACA;AACA;AACA;AACA;AACO;AACP,qBAAqB,+DAAgB;AACrC,yBAAyB,sDAAQ,CAAC,sDAAQ,GAAG,EAAE,0DAAmB;AAClE;AACA;AACA;AACA,wBAAwB,yDAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAgB;AACpC;AACA;AACA;AACA,oBAAoB,uDAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ,CAAC,sDAAQ,GAAG,oBAAoB,uCAAuC,oDAAY,8EAA8E,2DAAmB,6EAA6E,gEAAkB,2EAA2E,oDAAU,8EAA8E,2DAAiB,uEAAuE,oDAAU,gFAAgF,6DAAmB,8EAA8E,2DAAiB,yEAAyE,oDAAY,uEAAuE,sDAAa,qDAAqD,gDAAU,0EAA0E,8DAAiB,yDAAyD;AACzmC;;;;;;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACqB;AAClB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,6BAA6B,cAAc;AAC3C;AACA,mBAAmB,sDAAQ,CAAC,sDAAQ,GAAG,gBAAgB,qBAAqB,eAAe,6DAAc;AACzG,0BAA0B,0DAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,CAAC,sDAAQ,GAAG,qBAAqB,qCAAqC;AACxG;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,0EAA0E;AAC1E;AACA,0BAA0B,0DAAW,gDAAgD,qBAAqB,KAAK;AAC/G;AACA;AACA;AACA;AACA,oBAAoB,gDAAS;AAC7B;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;;;;;;;;;;;;;ACrHA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACW;AACb;AACpC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,8DAAW;AAC/B;AACA,0BAA0B,0DAAW;AACrC;AACA;AACA;AACA;AACA,oBAAoB,gDAAS;AAC7B;AACA;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AAC3B;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACoC;AACrC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AAC6B;AAC9B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;AAC9B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkC;;;;;;;;;;;;;ACjEnC;AAAA;AAAA;AAAA;AAAA;AAAsC;AACW;AACb;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,oBAAoB,8DAAW;AAC/B;AACA,0BAA0B,0DAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,gDAAS;AAC7B;AACA;AACA;AACA;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACsB;AACC;AACc;AACrB;AACjD;AACA;AACA,iBAAiB,sDAAQ,EAAE,qBAAqB;AAChD;AACA,KAAK,IAAI;AACT;AACA;AACA,2BAA2B,sDAAQ,CAAC,sDAAQ,GAAG;AAC/C;AACA,iBAAiB,sDAAQ,CAAC,sDAAQ,GAAG,iBAAiB,mBAAmB;AACzE;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAiB;AACrC,WAAW,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,oBAAoB,0GAA0G,uHAAuH,cAAc;AAC3S;AACO;AACP;AACA,uCAAuC,sBAAsB,UAAU;AACvE;AACA;AACA,IAAI,4EAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO,QAAQ,GAAG;AACrD;AACA,aAAa,sDAAQ,CAAC,sDAAQ,GAAG,yCAAyC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,yDAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AAClB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,QAAQ,6DAAc;AACtB,UAAU;AACV,0BAA0B,0DAAW;AACrC;AACA;AACO;AACP,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;AACO;AACP,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA,2BAA2B,gDAAS;AACpC;AACA;AACA;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACO;AACI;AACjD;AACA;AACA;AACA;AACO;AACP;AACA,6BAA6B,cAAc;AAC3C;AACA,oBAAoB,8DAAW;AAC/B;AACA,0BAA0B,0DAAW;AACrC;AACA;AACA;AACA;AACA,oBAAoB,yDAAkB;AACtC;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACL;AACJ;AAC7C;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA,gCAAgC,6DAAc;AAC9C,0BAA0B,0DAAW;AACrC;AACA;AACO;AACP,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,2BAA2B,8DAAW;AACtC;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAkB;AAC7C;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAU;;;;;;;;;;;;;ACAV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AACM;AACf;AACY;AAC7C;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACO;AACP,eAAe;AACf,gBAAgB;AAChB;AACA;AACA,sBAAsB;AACtB;AACA;AACO;AACP;AACA,oBAAoB;AACpB,kBAAkB;AAClB,mBAAmB;AACnB,wBAAwB;AACxB,uBAAuB;AACvB,gBAAgB;AAChB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mDAAe,IAAI,yCAAO;AAC7C;AACA;AACA;AACA;AACA;AACO;AACP,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,8DAA8D,4DAAc;AAC5E,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,4DAA4D,4DAAc;AAC1E,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,2DAA2D,4DAAc;AACzE,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,oEAAiB,oCAAoC,sDAAQ,EAAE;AACtF;AACA;AACA;AACA,iBAAiB,EAAE,aAAa;AAChC,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,0EAA0E,4DAAc;AACxF,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,0DAA0D,4DAAc;AACxE,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,8DAA8D,4DAAc;AAC5E,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAyB;AACzC;;;;;;;;;;;;;AC9JA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+D;AACN;AACQ;AACJ;AACN;AACZ;AACM;AACM;AACD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B,uBAAuB;AACvB;AACA;AACA;AACA,OAAO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,qBAAqB,0EAAS,cAAc,+EAAiB,yCAAyC,+EAAiB;AACvH,kBAAkB,+EAAiB;AACnC,UAAU;AACV;;AAEA,+BAA+B,wEAAc,CAAC,qEAAW,wDAAwD;;AAEjH;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA,qBAAqB,8EAAgB,YAAY,6EAAe;AAChE,kBAAkB,2EAAa;AAC/B,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA,6CAA6C,KAAK;;AAElD;AACA,sEAAsE;AACtE,SAAS;;AAET,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,kEAAQ;AACtB;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP;AACA;AACA;AAC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6B;AACpG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAgB;AACtC;AACA,iGAAiG,8EAAoB;AACrH;AACA,sBAAsB,0EAAgB,gBAAgB,8CAAI,GAAG,8EAAoB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,uBAAuB;AACxC;;AAEA,yBAAyB,0EAAgB;;AAEzC,2BAA2B,sEAAY,gBAAgB,+CAAK;AAC5D,sBAAsB,6CAAG,EAAE,gDAAM;AACjC;AACA,mBAAmB,wEAAc;AACjC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4DAA4D,+CAAK,GAAG,8CAAI,sBAAsB,gDAAM,GAAG,6CAAG;;AAE1G;AACA,0BAA0B,8EAAoB;AAC9C;;AAEA,2BAA2B,8EAAoB;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,QAAQ;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGc;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;AClJD;AAAA;AAAA;AAAuD;AACC;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,6CAAG,EAAE,+CAAK,EAAE,gDAAM,EAAE,8CAAI;AAClC;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wEAAc;AACxC;AACA,GAAG;AACH,0BAA0B,wEAAc;AACxC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,GAAG;AACH,CAAC;;;AAGc;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;AC5DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACZ;AACgB;AACE;AACpB;AACA;AACI;AACc;;;;;;;;;;;;;ACP9D;AAAA;AAAA;AAAA;AAA4D;AACD;;AAEpD;AACP,sBAAsB,0EAAgB;AACtC,wBAAwB,8CAAI,EAAE,6CAAG;;AAEjC,mEAAmE;AACnE;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,UAAU,8CAAI,EAAE,+CAAK;AACrB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAU;AACvB;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGc;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;ACrDD;AAAA;AAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAc;AAC5C;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;AAGc;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8D;AACF;AACgB;AAC5B;AACY;AACF;AACI;AACN;AACJ;AACY;AACE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wEAAc;AAC/B;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,0EAAgB;AACtC,kBAAkB,sEAAY;AAC9B;AACA,iBAAiB,kFAAwB;AACzC,gBAAgB,oEAAU;AAC1B;AACA;AACA;AACA,4FAA4F;AAC5F;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,6CAAG,GAAG,8CAAI;AAChD,qCAAqC,gDAAM,GAAG,+CAAK;AACnD;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAAK;AACpC,+BAA+B,+CAAK,0CAA0C;AAC9E;;AAEA;AACA,6CAA6C,2EAAa;AAC1D;AACA;AACA;AACA,yHAAyH,4EAAkB;AAC3I;AACA,sDAAsD;AACtD;AACA;AACA;AACA;;AAEA,mBAAmB,+DAAM;AACzB;AACA;AACA,oDAAoD,6EAAe;AACnE;AACA;AACA;AACA;AACA,0BAA0B,+DAAM,UAAU,2DAAO,yCAAyC,2DAAO;AACjG;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,6CAAG,GAAG,8CAAI;;AAEjD,sCAAsC,gDAAM,GAAG,+CAAK;;AAEpD;;AAEA;;AAEA;;AAEA;;AAEA,wBAAwB,6CAAG,EAAE,8CAAI;;AAEjC;;AAEA;;AAEA;;AAEA,oDAAoD,uEAAc,oCAAoC,+DAAM;;AAE5G;AACA;AACA;;AAEA;AACA,CAAC;;;AAGc;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;;;;;AC7ID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACT;AACF;AACA;AACJ;AACrD,wBAAwB,oEAAc,EAAE,mEAAa,EAAE,mEAAa,EAAE,iEAAW;AACjF,gCAAgC,wEAAe;AAC/C;AACA,CAAC,EAAE;;;;;;;;;;;;;;ACRH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACT;AACF;AACA;AACJ;AACV;AACJ;AACsB;AACpB;AACF;AACvC,wBAAwB,oEAAc,EAAE,mEAAa,EAAE,mEAAa,EAAE,iEAAW,EAAE,4DAAM,EAAE,0DAAI,EAAE,qEAAe,EAAE,2DAAK,EAAE,0DAAI;AAC7H,gCAAgC,wEAAe;AAC/C;AACA,CAAC,EAAE;;AAEwE;;AAEP;;;;;;;;;;;;;;ACjBpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACkD;AAC9C;AACI;AACtC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oDAAa;AAC9E,kBAAkB,gEAAY;AAC9B,gDAAgD,6DAAmB,GAAG,6DAAmB;AACzF,WAAW,gEAAY;AACvB,GAAG,IAAI,wDAAc;AACrB;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;;AAGH;AACA,qBAAqB,kEAAc;AACnC;AACA;AACA;AACA;AACA,KAAK,EAAE,oEAAgB;AACvB;AACA,GAAG,IAAI;AACP;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACR;AACwB;AACF;AACpD;AACf;AACA;AACA;AACA,kCAAkC,oEAAgB;AAClD,8BAA8B,gEAAY;AAC1C;AACA;AACA;;AAEA;AACA,SAAS,6CAAG;AACZ;AACA;AACA;AACA;AACA;;AAEA,SAAS,gDAAM;AACf;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAK;AACd;AACA;AACA;AACA;AACA;;AAEA,SAAS,8CAAI;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,4EAAwB;;AAEzD;AACA;;AAEA;AACA,WAAW,+CAAK;AAChB;AACA;;AAEA,WAAW,6CAAG;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACrEA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8D;AACM;AACM;AACzB;AACI;AAC0D;AACxD;AACE;AACN;;AAEpC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yDAAe;AAC/D;AACA,wDAAwD,kDAAQ;AAChE;AACA,0DAA0D,gDAAM;AAChE;AACA;AACA;AACA;AACA,sBAAsB,sEAAkB,yCAAyC,mEAAe,UAAU,wDAAc;AACxH,sCAAsC,gDAAM,GAAG,mDAAS,GAAG,gDAAM;AACjE;AACA;AACA,2BAA2B,6EAAe,CAAC,0EAAS,gDAAgD,gFAAkB;AACtH,4BAA4B,mFAAqB;AACjD,sBAAsB,kEAAc;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,oEAAgB,iBAAiB;AAC1D,6CAA6C,gDAAM,0CAA0C;AAC7F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;;AAE9C,yBAAyB,gDAAM;AAC/B;AACA;AACA,sBAAsB,+CAAK,EAAE,gDAAM;AACnC,kBAAkB,6CAAG,EAAE,gDAAM;AAC7B;AACA,KAAK;AACL;;AAEA;AACA,C;;;;;;;;;;;;AChEA;AAAA;AAAe;AACf;AACA;AACA;AACA,GAAG,IAAI;AACP,C;;;;;;;;;;;;ACLA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAA;AAAmC;AACpB;AACf;AACA,C;;;;;;;;;;;;ACHA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACPA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACVA;AAAA;AAAA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAO;AACA;AACA,uB;;;;;;;;;;;;ACFP;AAAA;AAAe;AACf;AACA;AACA,sDAAsD;AACtD,+BAA+B;AAC/B,4BAA4B;AAC5B,KAAK;AACL;AACA,GAAG,IAAI,EAAE;;AAET;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAyD;AAC1C;AACf,yBAAyB,EAAE,sEAAkB;AAC7C,C;;;;;;;;;;;;ACHA;AAAA;AAAA;AAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEe;AACf;AACA,0CAA0C;;AAE1C,SAAS,wDAAc;AACvB;AACA;AACA,KAAK;AACL,GAAG;AACH,C;;;;;;;;;;;;AC3CA;AAAA;AAAe;AACf,yBAAyB;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACPA;AAAA;AAAe;AACf;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,C;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAA2D;AACpD;AACP,SAAS,oDAAO,MAAM,oDAAO;AAC7B;AACO;AACP;AACA;AACA,C;;;;;;;;;;;;ACPa,4CAA4C,SAAS,8GAA8G,cAAc,mBAAO,CAAC,0EAAc,EAAE,2CAA2C,6BAA6B,4BAA4B,+CAA+C,6BAA6B,8BAA8B,EAAE,gBAAgB,mBAAO,CAAC,8EAAgB,EAAE,+CAA+C,6BAA6B,kCAAkC,gDAAgD,6BAA6B,iCAAiC,+CAA+C,6BAA6B,gCAAgC,E;;;;;;;;;;;;ACA3wB,6CAA6C,2CAA2C,iCAAiC,IAAI,uFAAuF,SAAS,wBAAwB,mDAAmD,0CAA0C,cAAc,IAAI,aAAa,SAAS,MAAM,cAAc,IAAI,cAAc,SAAS,MAAM,cAAc,MAAM,iEAAiE,KAAK,cAAc,+BAA+B,GAAG,mDAAmD,eAAe,wBAAwB,qBAAqB,YAAY,iBAAiB,UAAU,iCAAiC,2DAA2D,YAAY,IAAI,cAAc,mBAAmB,mBAAmB,4DAA4D,KAAK,EAAE,KAAK,kHAAkH,yCAAyC,kBAAkB,MAAM,yBAAyB,oBAAoB,8BAA8B,SAAS,kCAAkC,SAAS,0EAA0E,IAAI,SAAS,yCAAyC,aAAa,MAAM,2BAA2B,iBAAiB,MAAM,oBAAoB,2BAA2B,MAAM,+BAA+B,SAAS,cAAc,SAAS,YAAY,QAAQ,MAAM,qBAAqB,OAAO,gCAAgC,UAAU,uDAAuD,kCAAkC,IAAI,kBAAkB,SAAS,yDAAyD,0BAA0B,YAAY,4CAA4C,SAAS,+CAA+C,iBAAiB,mBAAO,CAAC,oEAAY,gBAAgB,mBAAO,CAAC,mEAAa,UAAU,mBAAO,CAAC,0FAAiC,YAAY,mBAAO,CAAC,8FAAmC,gCAAgC,mBAAO,CAAC,sGAAuC,+BAA+B,mBAAO,CAAC,kGAAqC,eAAe,mBAAO,CAAC,2EAAa,oCAAoC,kDAAkD,qCAAqC,gBAAgB,2CAA2C,gBAAgB,IAAI,2BAA2B,GAAG,GAAG,uBAAuB,kCAAkC,gBAAgB,sCAAsC,YAAY,0CAA0C,kDAAkD,0BAA0B,GAAG,2BAA2B,mBAAmB,uCAAuC,6CAA6C,WAAW,0CAA0C,uDAAuD,oEAAoE,yCAAyC,cAAc,8HAA8H,qBAAqB,qBAAqB,qBAAqB,qIAAqI,qBAAqB,iEAAiE,uMAAuM,sBAAsB,uBAAuB,qBAAqB,oBAAoB,qBAAqB,0HAA0H,qBAAqB,0HAA0H,uBAAuB,8EAA8E,oBAAoB,4BAA4B,kHAAkH,YAAY,+CAA+C,wBAAwB,yDAAyD,kEAAkE,qEAAqE,gBAAgB,wCAAwC,oCAAoC,mGAAmG,GAAG,cAAc,gCAAgC,QAAQ,YAAY,iBAAiB,eAAe,+aAA+a,eAAe,kDAAkD,gDAAgD,qCAAqC,gBAAgB,4NAA4N,iDAAiD,2EAA2E,6DAA6D,mHAAmH,wBAAwB,8GAA8G,0iBAA0iB,0GAA0G,6xBAA6xB,4BAA4B,sDAAsD,yTAAyT,8BAA8B,uDAAuD,wBAAwB,GAAG,GAAG,eAAe,kDAAkD,0BAA0B,qCAAqC,gBAAgB,uYAAuY,oHAAoH,uCAAuC,gCAAgC,6CAA6C,mKAAmK,mGAAmG,mEAAmE,yLAAyL,QAAQ,4EAA4E,SAAS,OAAO,GAAG,GAAG,cAAc,eAAe,UAAU,gCAAgC,mBAAmB,MAAM,cAAc,eAAe,UAAU,gCAAgC,4BAA4B,MAAM,2EAA2E,uBAAuB,6EAA6E,uBAAuB,4EAA4E,kCAAkC,kBAAkB,mBAAmB,uDAAuD,2KAA2K,oSAAoS,GAAG,wFAAwF,wsCAAwsC,wHAAwH,KAAK,kBAAkB,iDAAiD,uBAAuB,gBAAgB,uEAAuE,6CAA6C,iEAAiE,kHAAkH,KAAK,uDAAuD,eAAe,cAAc,sDAAsD,MAAM,4DAA4D,MAAM,2BAA2B,MAAM,gBAAgB,eAAe,8BAA8B,eAAe,6BAA6B,oCAAoC,iCAAiC,gCAAgC,gBAAgB,+BAA+B,cAAc,uCAAuC,MAAM,yFAAyF,yDAAyD,gBAAgB,4DAA4D,yDAAyD,oJAAoJ,2CAA2C,kBAAkB,qBAAqB,SAAS,oBAAoB,gBAAgB,wNAAwN,8DAA8D,+DAA+D,uCAAuC,gCAAgC,6DAA6D,iBAAiB,KAAK,uBAAuB,0BAA0B,6BAA6B,oBAAoB,uEAAuE,iBAAiB,UAAU,gCAAgC,IAAI,yBAAyB,yCAAyC,oCAAoC,IAAI,EAAE,2CAA2C,iBAAiB,IAAI,wEAAwE,WAAW,4BAA4B,8BAA8B,sEAAsE,kBAAkB,yBAAyB,gC;;;;;;;;;;;;ACA17c,6BAA6B,4CAA4C,SAAS,8HAA8H,6dAA6d,4DAA4D,eAAe,8IAA8I,yDAAyD,4DAA4D,mRAAmR,GAAG,8EAA8E,iCAAiC,8GAA8G,0JAA0J,sC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApnD;AAE1B,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAIC,GAAG,EAAK;EAC7B,OAAOA,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI;AACtB,CAAC;AAEM,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAID,GAAG,EAAK;EAC5B,OAAOA,GAAG,CAACA,GAAG,CAACE,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;AACnC,CAAC;AAEM,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAIF,GAAG,EAAK;EAC9B,OAAOA,GAAG,CAACE,MAAM;AAClB,CAAC;AAEM,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAIH,GAAG,EAAK;EAC7B,OAAO,EAAE,CAACI,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;AAC1B,CAAC;AAEM,IAAMM,GAAG,GAAGC,uDAAK,CAAC,UAACC,EAAE,EAAER,GAAG,EAAK;EACrC,OAAOA,GAAG,CAACM,GAAG,CAACE,EAAE,CAAC;AACnB,CAAC,CAAC;AAEK,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAIT,GAAG,EAAK;EAC/B,OAAOA,GAAG,CAACU,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG;IAAA,OAAKD,GAAG,CAACE,MAAM,CAACD,GAAG,CAAC;EAAA,GAAE,EAAE,CAAC;AACrD,CAAC;AAEM,IAAME,IAAI,GAAGP,uDAAK,CAAC,UAACQ,SAAS,EAAEf,GAAG,EAAK;EAC7C,OAAOA,GAAG,CAACc,IAAI,CAACC,SAAS,CAAC;AAC3B,CAAC,CAAC;AAGK,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAK,EAAEjB,GAAG,EAAK;EACtC,OAAOA,GAAG,CAACkB,OAAO,CAACD,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAEM,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAInB,GAAG,EAAK;EACpC,OAAOA,GAAG,IAAI,EAAE;AACjB,CAAC;AAEM,IAAMoB,OAAO,GAAGb,uDAAK,CAAC,UAACc,IAAI,EAAErB,GAAG,EAAK;EAC3C,OAAOA,GAAG,CAACU,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;IAC/B,OAAAU,aAAA,CAAAA,aAAA,KACIX,GAAG,OAAAY,4EAAA,KACLX,GAAG,CAACS,IAAI,CAAC,EAAGT,GAAG;EAElB,CAAC,EAAE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEK,IAAMY,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAI,EAAK;EACpC,OAAOC,KAAK,CAACC,KAAK,CAAC,IAAI,EAAED,KAAK,CAACD,IAAI,CAAC,CAAC;AACtC,CAAC,C;;;;;;;;;;;;AClDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAAI,EAAEC,SAAS,EAAK;EAC5C,IAAID,IAAI,CAACE,SAAS,EAAE,OAAOF,IAAI,CAACE,SAAS,CAACC,QAAQ,CAACF,SAAS,CAAC;EAE7D,OAAO,IAAAjB,MAAA,CAAKgB,IAAI,CAACC,SAAS,CAACG,IAAI,CAAC,CAAC,OAAKf,OAAO,KAAAL,MAAA,CAAKiB,SAAS,MAAG,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAEM,IAAMI,QAAQ,GAAG,SAAXA,QAAQA,CAAIL,IAAI,EAAEC,SAAS,EAAK;EAC5C,IAAID,IAAI,CAACE,SAAS,EAAE;IACnBF,IAAI,CAACE,SAAS,CAACI,GAAG,CAACL,SAAS,CAAC;EAC9B,CAAC,MAAM,IAAI,CAACF,QAAQ,CAACC,IAAI,EAAEC,SAAS,CAAC,EAAE;IACtCD,IAAI,CAACC,SAAS,GAAG,GAAAjB,MAAA,CAAIgB,IAAI,CAACC,SAAS,CAACG,IAAI,CAAC,CAAC,OAAApB,MAAA,CAAIiB,SAAS,EAAIG,IAAI,CAAC,CAAC;EAClE;EACA,OAAOJ,IAAI;AACZ,CAAC;AAEM,IAAMO,WAAW,GAAG,SAAdA,WAAWA,CAAIP,IAAI,EAAEC,SAAS,EAAK;EAC/C,IAAID,IAAI,CAACE,SAAS,EAAE;IACnBF,IAAI,CAACE,SAAS,CAACM,MAAM,CAACP,SAAS,CAAC;EACjC,CAAC,MAAM;IACND,IAAI,CAACC,SAAS,GAAG,IAAAjB,MAAA,CAAKgB,IAAI,CAACC,SAAS,CAACG,IAAI,CAAC,CAAC,OAAKK,OAAO,KAAAzB,MAAA,CAAKiB,SAAS,QAAK,EAAE,CAAC,CAACG,IAAI,CAAC,CAAC;EACrF;EACA,OAAOJ,IAAI;AACZ,CAAC;AAGM,IAAMU,WAAW,GAAG,SAAdA,WAAWA,CAAIV,IAAI,EAAEC,SAAS,EAAK;EAC/C,IAAID,IAAI,CAACE,SAAS,EAAE;IACnBF,IAAI,CAACE,SAAS,CAACS,MAAM,CAACV,SAAS,CAAC;IAChC,OAAOD,IAAI;EACZ;EAEA,OAAOD,QAAQ,CAACC,IAAI,EAAEC,SAAS,CAAC,GAC/BM,WAAW,CAACP,IAAI,EAAEC,SAAS,CAAC,GAC5BI,QAAQ,CAACL,IAAI,EAAEC,SAAS,CAAC;AAC3B,CAAC;AAEM,IAAMW,SAAS,GAAG,SAAZA,SAASA,CAAIZ,IAAI,EAAEC,SAAS,EAAEY,IAAI,EAAK;EACnD,OAAQA,IAAI,KAAK,IAAI,GACpBR,QAAQ,CAACL,IAAI,EAAEC,SAAS,CAAC,GACzBM,WAAW,CAACP,IAAI,EAAEC,SAAS,CAAC;AAC9B,CAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxC+C;AACP;AAElC,IAAMa,MAAM,GAAG,SAATA,MAAMA,CAAIC,MAAM,EAAK;EACjC,IAAIC,WAAW,GAAG,CAAC,CAAC;EAEpB,IAAMC,WAAW,GAAAxB,aAAA,CAAAA,aAAA,KACbsB,MAAM;IACTG,EAAE,WAAFA,EAAEA,CAACC,IAAI,EAAExC,EAAE,EAAE;MACZ,IAAIR,GAAG,GAAGmB,2DAAY,CAAC0B,WAAW,CAACG,IAAI,CAAC,CAAC;MAEzC,IAAI,CAAChC,sDAAO,CAACR,EAAE,EAAER,GAAG,CAAC,IAAIiD,yDAAU,CAACzC,EAAE,CAAC,EAAE;QACxCqC,WAAW,CAACG,IAAI,CAAC,MAAAnC,MAAA,CAAAqC,+EAAA,CAAOlD,GAAG,IAAEQ,EAAE,EAAC;MACjC;MAEA,OAAOsC,WAAW;IACnB,CAAC;IACDK,GAAG,WAAHA,GAAGA,CAACH,IAAI,EAAExC,EAAE,EAAE;MACbA,EAAE,CAAC4C,WAAW,GAAG,IAAI;MACrB,OAAON,WAAW,CAACC,EAAE,CAACC,IAAI,EAAExC,EAAE,CAAC;IAChC,CAAC;IACD6C,GAAG,WAAHA,GAAGA,CAACL,IAAI,EAAExC,EAAE,EAAE;MACb,IAAIwC,IAAI,IAAI,IAAI,IAAIxC,EAAE,IAAI,IAAI,EAAE;QAC/B8C,MAAM,CAACC,IAAI,CAACV,WAAW,CAAC,CAACW,OAAO,CAAC,UAACR,IAAI;UAAA,OAAKF,WAAW,CAACO,GAAG,CAACL,IAAI,CAAC;QAAA,EAAC;MAClE;MAEA,IAAI,CAACA,IAAI,IAAI,CAACH,WAAW,CAACG,IAAI,CAAC,EAAE,OAAOF,WAAW;MAEnDD,WAAW,CAACG,IAAI,CAAC,GAAGH,WAAW,CAACG,IAAI,CAAC,CAACS,MAAM,CAAC,UAACC,GAAG,EAAK;QACrD;QACA,IAAI,CAAClD,EAAE,IAAImD,iDAAE,CAACnD,EAAE,EAAEkD,GAAG,CAAC,EAAE;UACvB,OAAOA,GAAG,CAACN,WAAW;UACtB,OAAO,KAAK;QACb;QACA,OAAO,IAAI;MACZ,CAAC,CAAC;MAEF,IAAI,CAACP,WAAW,CAACG,IAAI,CAAC,CAAC9C,MAAM,EAAE,OAAO2C,WAAW,CAACG,IAAI,CAAC;MAEvD,OAAOF,WAAW;IACnB,CAAC;IACDc,OAAO,WAAPA,OAAOA,CAACZ,IAAI,EAAEa,IAAI,EAAkB;MAAA,IAAhBC,OAAO,GAAAC,SAAA,CAAA7D,MAAA,QAAA6D,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;MAChC5C,2DAAY,CAAC0B,WAAW,CAACG,IAAI,CAAC,CAAC,CAC9BS,MAAM,CAAC,UAACjD,EAAE,EAAK;QACfA,EAAE,CAACH,IAAI,CAACyD,OAAO,EAAE;UAACd,IAAI,EAAJA;QAAI,CAAC,EAAEa,IAAI,CAAC;QAC9B,OAAOrD,EAAE,CAAC4C,WAAW;MACtB,CAAC,CAAC,CACDI,OAAO,CAACV,WAAW,CAACO,GAAG,CAACY,IAAI,CAACnB,WAAW,EAAEE,IAAI,CAAC,CAAC;MAElD,OAAOF,WAAW;IACnB,CAAC;IACDoB,GAAG,WAAHA,GAAGA,CAAA,EAAG;MACLC,OAAO,CAACD,GAAG,CAACrB,WAAW,CAAC;MACxB,OAAOC,WAAW;IACnB;EAAC,EACD;EAED,OAAOA,WAAW;AACnB,CAAC;AAED,IAAMsB,MAAM,GAAGzB,MAAM,CAAC,CAAC,CAAC,CAAC;AAElB,IAAMI,EAAE,GAAGqB,MAAM,CAACrB,EAAE;AACpB,IAAMI,GAAG,GAAGiB,MAAM,CAACjB,GAAG;AACtB,IAAME,GAAG,GAAGe,MAAM,CAACf,GAAG;AACtB,IAAMO,OAAO,GAAGQ,MAAM,CAACR,OAAO;AAC9B,IAAMM,GAAG,GAAGE,MAAM,CAACF,GAAG,C;;;;;;;;;;;;AClE7B;AAAA;AAAA;AAAA;AAAA;AAAmC;AAE5B,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,QAAQ,EAAEC,QAAQ;EAAA,OAAK,UAACC,KAAK,EAAK;IAC1D,IAAM3C,IAAI,GAAG4C,uDAAK,CAACH,QAAQ,EAAEE,KAAK,CAACE,aAAa,CAAC,CAC9CC,IAAI,CAAC,UAAC9C,IAAI;MAAA,OAAKA,IAAI,CAACG,QAAQ,CAACwC,KAAK,CAAC5B,MAAM,CAAC;IAAA,EAAC;IAE9C,IAAIf,IAAI,IAAI,IAAI,EAAE;MACjB0C,QAAQ,CAACC,KAAK,EAAE3C,IAAI,CAAC;IACtB;IAEA,OAAO2C,KAAK;EACb,CAAC;AAAA;AAEM,IAAMzB,EAAE,GAAG,SAALA,EAAEA,CAAIlB,IAAI,EAAEmB,IAAI,EAAE4B,OAAO,EAAK;EAC1C/C,IAAI,CAACgD,gBAAgB,CAAC7B,IAAI,EAAE4B,OAAO,EAAE,KAAK,CAAC;AAC5C,CAAC;AAEM,IAAMvB,GAAG,GAAG,SAANA,GAAGA,CAAIxB,IAAI,EAAEmB,IAAI,EAAE4B,OAAO,EAAK;EAC3C/C,IAAI,CAACiD,mBAAmB,CAAC9B,IAAI,EAAE4B,OAAO,CAAC;AACxC,CAAC,C;;;;;;;;;;;;ACnBM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAMrE,MAAK,GAAG,SAARA,KAAKA,CAAIwE,CAAC,EAAc;EAAA,SAAAC,IAAA,GAAAjB,SAAA,CAAA7D,MAAA,EAAT+E,IAAI,OAAAvD,KAAA,CAAAsD,IAAA,OAAAA,IAAA,WAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAAJD,IAAI,CAAAC,IAAA,QAAAnB,SAAA,CAAAmB,IAAA;EAAA;EAC/B,IAAID,IAAI,CAAC/E,MAAM,IAAI6E,CAAC,CAAC7E,MAAM,EAAE,OAAO6E,CAAC,CAAApD,KAAA,SAAIsD,IAAI,CAAC;EAC9C,OAAO;IAAA,SAAAE,KAAA,GAAApB,SAAA,CAAA7D,MAAA,EAAIkF,IAAI,OAAA1D,KAAA,CAAAyD,KAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;MAAJD,IAAI,CAAAC,KAAA,IAAAtB,SAAA,CAAAsB,KAAA;IAAA;IAAA,OAAK9E,MAAK,CAAAoB,KAAA,UAACoD,CAAC,CAACd,IAAI,CAAAtC,KAAA,CAANoD,CAAC,GAAMA,CAAC,EAAAlE,MAAA,CAAKoE,IAAI,EAAC,EAAApE,MAAA,CAAKuE,IAAI,EAAC;EAAA;AACvD,CAAC;AAAC;AAEK,IAAME,IAAI,GAAG,SAAPA,IAAIA,CAAA;EAAA,SAAAC,KAAA,GAAAxB,SAAA,CAAA7D,MAAA,EAAOsF,GAAG,OAAA9D,KAAA,CAAA6D,KAAA,GAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;IAAHD,GAAG,CAAAC,KAAA,IAAA1B,SAAA,CAAA0B,KAAA;EAAA;EAAA,OAAK,UAAAC,CAAC;IAAA,OAAIF,GAAG,CAAC9E,MAAM,CAAC,UAACiF,CAAC,EAAEZ,CAAC;MAAA,OAAKA,CAAC,CAACY,CAAC,CAAC;IAAA,GAAED,CAAC,CAAC;EAAA;AAAA;AAE3D,IAAME,GAAG,GAAGrF,MAAK,CAAC,UAACC,EAAE,EAAEqF,GAAG,EAAK;EACrCrF,EAAE,CAACqF,GAAG,CAAC;EACP,OAAOA,GAAG;AACX,CAAC,CAAC;AAEK,IAAMC,MAAM,GAAGvF,MAAK,CAAC,UAACwF,MAAM,EAAEd,IAAI,EAAEe,GAAG,EAAK;EAClD,OAAOA,GAAG,CAACD,MAAM,CAAC,CAACpE,KAAK,CAACqE,GAAG,EAAEf,IAAI,CAAC;AACpC,CAAC,CAAC;AAGK,IAAMgB,QAAQ,GAAG1F,MAAK,CAAC,UAAC2F,IAAI,EAAEC,IAAI,EAAK;EAC7C,IAAIC,OAAO;EACX,OAAO,YAAa;IAAA,SAAAC,KAAA,GAAAtC,SAAA,CAAA7D,MAAA,EAAT+E,IAAI,OAAAvD,KAAA,CAAA2E,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJrB,IAAI,CAAAqB,KAAA,IAAAvC,SAAA,CAAAuC,KAAA;IAAA;IACd,IAAIC,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;MACjBH,OAAO,GAAG,IAAI;MACdD,IAAI,CAAAxE,KAAA,SAAIsD,IAAI,CAAC;IACd,CAAC;IACDuB,YAAY,CAACJ,OAAO,CAAC;IACrBA,OAAO,GAAGK,UAAU,CAACF,KAAK,EAAEL,IAAI,CAAC;EAClC,CAAC;AACF,CAAC,CAAC,C;;;;;;;;;;;;AC3BF;AAAA,IAAIQ,KAAK,GAAG,CAAC,CAAC;AAEC,yEAACC,GAAG,EAAK;EACvB,IAAID,KAAK,CAACC,GAAG,CAAC,EAAE,OAAOD,KAAK,CAACC,GAAG,CAAC;EAEjCD,KAAK,CAACC,GAAG,CAAC,GAAG,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IAC7C,IAAMC,CAAC,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;IAC1CF,CAAC,CAAC/D,IAAI,GAAG,iBAAiB;IAC1B+D,CAAC,CAACG,KAAK,GAAG,IAAI;IACdH,CAAC,CAACI,MAAM,GAAGN,OAAO;IAClBE,CAAC,CAACK,OAAO,GAAGN,MAAM;IAClBC,CAAC,CAACJ,GAAG,GAAGA,GAAG;IACXK,QAAQ,CAACK,IAAI,CAACC,WAAW,CAACP,CAAC,CAAC;EAC7B,CAAC,CAAC;EAEF,OAAOL,KAAK,CAACC,GAAG,CAAC;AAClB,CAAC,E;;;;;;;;;;;;AChBD;AAAA;AAAsC;AAEtC,IAAIY,GAAG,GAAG,IAAI;AAEC,2EAAM;EACpB,IAAIA,GAAG,EAAE,OAAOA,GAAG;EAEnBA,GAAG,GAAG,IAAIX,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtCU,2DAAU,CAAC,wCAAwC,CAAC,CAACC,IAAI,CACxD;MAAA,OAAMZ,OAAO,CAACa,MAAM,CAACC,KAAK,CAAC;IAAA,CAC5B,CAAC,CAACC,KAAK,CAACd,MAAM,CAAC;EAChB,CAAC,CAAC;EAEF,OAAOS,GAAG;AACX,CAAC,E;;;;;;;;;;;;ACdD;AAAA;AAAsC;AAEtC,IAAIA,GAAG,GAAG,IAAI;AAGC,2EAAM;EACpB,IAAIA,GAAG,EAAE,OAAOA,GAAG;EAEnBA,GAAG,GAAG,IAAIX,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IAEtCY,MAAM,CAACG,uBAAuB,GAAG,YAAM;MACtChB,OAAO,CAACa,MAAM,CAACI,EAAE,CAAC;MAClB,OAAOJ,MAAM,CAACG,uBAAuB;IACtC,CAAC;IAEDL,2DAAU,CAAC,8BAA8B,CAAC,CACxCI,KAAK,CAACd,MAAM,CAAC;EAChB,CAAC,CAAC;EAEF,OAAOS,GAAG;AACX,CAAC,E;;;;;;;;;;;;;;;;;;;;;ACpBM,IAAM5D,EAAE,GAAG,SAALA,EAAEA,CAAIoE,CAAC,EAAEC,CAAC,EAAK;EAC3B,OAAOD,CAAC,KAAKC,CAAC,GACbD,CAAC,KAAK,CAAC,IAAI,CAAC,GAAGA,CAAC,KAAK,CAAC,GAAGC,CAAC,GAC1BD,CAAC,KAAKA,CAAC,IAAIC,CAAC,KAAKA,CAAE;AACrB,CAAC;AAEM,IAAM/E,UAAU,GAAG,SAAbA,UAAUA,CAAIzC,EAAE,EAAK;EACjC,OAAOmD,EAAE,CAAAsE,oEAAA,CAAQzH,EAAE,GAAE,UAAU,CAAC;AACjC,CAAC;AAEM,IAAM0H,QAAQ,GAAG,SAAXA,QAAQA,CAAIlC,GAAG,EAAK;EAChC,OAAOA,GAAG,KAAK1C,MAAM,CAAC0C,GAAG,CAAC;AAC3B,CAAC;AAEM,IAAMmC,KAAK,GAAG,SAARA,KAAKA,CAAIzC,CAAC,EAAK;EAC3B,OAAOA,CAAC,IAAI,IAAI;AACjB,CAAC;AAEM,IAAM0C,QAAQ,GAAG,SAAXA,QAAQA,CAAIvG,IAAI,EAAK;EACjC,OAAOA,IAAI,IAAI,IAAI,IAAIA,IAAI,KAAKA,IAAI,CAAC6F,MAAM;AAC5C,CAAC,C;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAMrF,MAAM,GAAG,SAATA,MAAMA,CAAIR,IAAI,EAAK;EAC/BA,IAAI,CAACwG,UAAU,CAACC,WAAW,CAACzG,IAAI,CAAC;AAClC,CAAC;AAEM,IAAM0G,KAAK,GAAG,SAARA,KAAKA,CAAI1G,IAAI,EAAK;EAC9BA,IAAI,CAAC2G,WAAW,GAAG,EAAE;AACtB,CAAC;AAEM,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAI5G,IAAI,EAAE6G,OAAO,EAAK;EACtC7G,IAAI,CAACwG,UAAU,CAACM,YAAY,CAACD,OAAO,EAAE7G,IAAI,CAAC;EAC3C6G,OAAO,CAACpB,WAAW,CAACzF,IAAI,CAAC;AAC1B,CAAC;AAEM,IAAM+G,MAAM,GAAG,SAATA,MAAMA,CAAI/G,IAAI,EAAK;EAC/B,IAAM6G,OAAO,GAAG7G,IAAI,CAACwG,UAAU;EAC/B,IAAMQ,MAAM,GAAGH,OAAO,CAACL,UAAU;EACjCQ,MAAM,CAACF,YAAY,CAAC9G,IAAI,EAAE6G,OAAO,CAAC;EAClCG,MAAM,CAACP,WAAW,CAACI,OAAO,CAAC;AAC5B,CAAC;AAEM,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAIjH,IAAI,EAAEkH,OAAO,EAAK;EACxClH,IAAI,CAACyF,WAAW,CAACyB,OAAO,CAAC;AAC1B,CAAC;AAEM,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAInH,IAAI,EAAEkH,OAAO,EAAK;EACzClH,IAAI,CAAC8G,YAAY,CAACI,OAAO,EAAElH,IAAI,CAACoH,UAAU,CAAC;AAC5C,CAAC;AAEM,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIrH,IAAI,EAAEkH,OAAO,EAAK;EACxClH,IAAI,CAACwG,UAAU,CAACM,YAAY,CAACI,OAAO,EAAElH,IAAI,CAAC;AAC5C,CAAC;AAEM,IAAMsH,KAAK,GAAG,SAARA,KAAKA,CAAItH,IAAI,EAAEkH,OAAO,EAAK;EACvClH,IAAI,CAACwG,UAAU,CAACM,YAAY,CAACI,OAAO,EAAElH,IAAI,CAACuH,WAAW,CAAC;AACxD,CAAC,C;;;;;;;;;;;;AClCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AAEzB,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAI/E,QAAQ,EAAyB;EAAA,IAAvBR,OAAO,GAAAC,SAAA,CAAA7D,MAAA,QAAA6D,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGiD,QAAQ;EAChD,OAAO,CAAClD,OAAO,CAACwF,cAAc,CAAChF,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAEM,IAAMiF,MAAM,GAAG,SAATA,MAAMA,CAAIjF,QAAQ,EAAyB;EAAA,IAAvBR,OAAO,GAAAC,SAAA,CAAA7D,MAAA,QAAA6D,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGiD,QAAQ;EAClD,OAAO7G,oDAAK,CAAC2D,OAAO,CAAC0F,iBAAiB,CAAClF,QAAQ,CAAC,CAAC;AAClD,CAAC;AAEM,IAAMG,KAAK,GAAG,SAARA,KAAKA,CAAIH,QAAQ,EAAyB;EAAA,IAAvBR,OAAO,GAAAC,SAAA,CAAA7D,MAAA,QAAA6D,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGiD,QAAQ;EACjD,OAAO7G,oDAAK,CAAC2D,OAAO,CAAC2F,gBAAgB,CAACnF,QAAQ,CAAC,CAAC;AACjD,CAAC;AAEM,IAAMX,EAAE,GAAG,SAALA,EAAEA,CAAI9B,IAAI,EAAEyC,QAAQ,EAAK;EACrC,OAAOzC,IAAI,CAAC6H,OAAO,CAACpF,QAAQ,CAAC;AAC9B,CAAC,C;;;;;;;;;;;AChBD;AACA;AACA,EAAE,KAA4D;AAC9D,EAAE,SACgD;AAClD,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAA8B;AAC1C,gBAAgB,mBAAO,CAAC,sCAAI;AAC5B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO,qBAAqB,oBAAoB;AAC7D,aAAa,OAAO;AACpB;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,mBAAmB;AACnB;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAsD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAsD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA,cAAc,MAAM;AACpB;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,2WAA2W,EAAE;AAC7W;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+EAA+E,sBAAsB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,sDAAsD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAsD;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qDAAqD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB,EAAE;AAC5D;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC,yCAAyC,EAAE;AAC3C,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC,mCAAmC,EAAE;AACrC,iCAAiC,EAAE;AACnC,kCAAkC,EAAE;AACpC,+BAA+B,EAAE;AACjC,mCAAmC,EAAE;AACrC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,wBAAwB;AACxB,0BAA0B;AAC1B;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB,yBAAyB;AACzB;AACA,0BAA0B;AAC1B;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,qCAAqC,EAAE;AACvC,yCAAyC,EAAE;AAC3C,wCAAwC,EAAE;AAC1C,wCAAwC,EAAE;AAC1C,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,kCAAkC,2BAA2B;AAC7D,uCAAuC,EAAE;AACzC,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qCAAqC;AACrC;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C,EAAE;AACnF,mCAAmC,yCAAyC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,uDAAuD,iCAAiC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qCAAqC,yCAAyC,EAAE;AAChF;AACA,qCAAqC,qCAAqC,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC,EAAE;AAC5E,kCAAkC,sBAAsB,EAAE;AAC1D,6BAA6B,gBAAgB,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA,qDAAqD,sCAAsC,0BAA0B,EAAE,EAAE,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,gCAAgC,UAAU,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,cAAc,iBAAiB;AAC/B;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gCAAgC,iCAAiC,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa,cAAc,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAA0C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,kDAAkD,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,mCAAmC,oEAAoE,EAAE;AACzG,mCAAmC,oEAAoE,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAoE,EAAE;AACzG,mCAAmC,oEAAoE,EAAE;AACzG;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA,mCAAmC,mCAAmC,EAAE;AACxE,mCAAmC,mCAAmC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAsC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,qCAAqC,uCAAuC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACvjWD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iB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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AACnB;AACF;AACN;AACU;AACF;AACN;AACM;AACiC;AACtB;AACI;AAC3B;AACE;AACI;AACF;AACJ;AACI;AACI;AACE;AACN;AACF;AACM;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;;AC1BrC;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAoC;AACN;AACI;;AAEnB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;;AAEA,SAAS,yDAAQ,cAAc,kDAAS;AACxC,CAAC;;;;;;;;;;;;;AC3BD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjCD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;;;;;;;;;;;;;ACTA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA8B;;AAEf;AACf,iCAAiC,+CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAoC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kDAAS;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAA6B;AACQ;AACN;AACI;;AAEpB;AACf,WAAW,0CAAG,cAAc,+CAAM,OAAO,kDAAS;AAClD,uCAAuC,yDAAQ,iBAAiB,yDAAQ;AACxE,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAqC;;AAEtB;AACf,wCAAwC,0DAAS;AACjD,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAwB;;AAET;AACf;AACA,uBAAuB,oDAAG,2CAA2C,SAAS;AAC9E,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AChCD;AAAA;AAAoC;;AAErB;AACf,SAAS,0DAAS;AAClB,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAO;;;;;;;;;;;;;ACAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACI;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,iDAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,kFAAkF,EAAE;;AAE9H;AACA;AACA,0CAA0C,gCAAgC,6DAA6D,EAAE;AACzI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,+BAA+B,EAAE;;AAEzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,4CAAK;AAChC;;AAEA;AACA,gEAAgE,4CAAK;AACrE;;AAEA;AACA,+DAA+D,4CAAK;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;AC7KA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKgB;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACL;AAC2B;AAC9B;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0DAAK,SAAS,kDAAK;AAC9B;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,uBAAuB,wCAAwC,EAAE;AACjE,wBAAwB,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe,EAAE;;AAEvD;;AAEA;AACA,oCAAoC,mCAAmC,EAAE;AACzE,qCAAqC,wBAAwB,EAAE;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,gDAAgD,EAAE;AAC3F,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gHAAgH,EAAE;AACpJ,kCAAkC,gGAAgG,EAAE;AACpI,sCAAsC,uGAAuG,EAAE;AAC/I,uCAAuC,uGAAuG,EAAE;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAU;AAChC;AACA;;AAEA;AACA,wBAAwB,kDAAK;AAC7B;;AAEA;AACA,eAAe,kDAAK;AACpB,wBAAwB,kDAAK,2EAA2E,kDAAK;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kDAAK;AAClD;AACA;AACA,kBAAkB,kDAAK,mBAAmB,kDAAK,iCAAiC,kDAAK;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;;AAEA,QAAQ,kDAAK;AACb;AACA;AACA,KAAK;AACL,iBAAiB,2DAAM,CAAC,kDAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAW,CAAC,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB,IAAI,+DAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iEAAa;AACnB,UAAU,kDAAK;AACf,YAAY,kDAAK;AACjB;AACA,6CAA6C,oBAAoB,EAAE,OAAO;AAC1E,OAAO;AACP,QAAQ,0DAAU,CAAC,kDAAK;AACxB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC9kBA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKoB;;;;;;;;;;;;;ACLpB;AAAA;AAAA;AAAmC;;AAE5B;AACP,EAAE,kDAAK;AACP;;AAEe;AACf,EAAE,kDAAK;AACP,EAAE,kDAAK;AACP,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAO;;;;;;;;;;;;;ACAP;AAAA;AAAA;AAA+B;AACC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,sDAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA,yBAAyB,sDAAK;AAC9B;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,QAAQ,iDAAG,IAAI,yCAAG;AAClB,wBAAwB,yCAAG;;AAE3B;AACA;AACA,kBAAkB;AAClB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,gBAAgB;AAChB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB,+BAA+B;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,iDAAG;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxHD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACE;;;;;;;;;;;;;ACD3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLP;AAAA;AAAA;AAAA;AAAA;AAA8B;AACI;AACM;AACX;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,4CAAK;AACpB;AACA;AACA;AACA,6CAA6C,4CAAM;AACnD,2CAA2C,4CAAM;AACjD,mBAAmB,iDAAG;AACtB,mBAAmB,iDAAG;AACtB;AACA,6CAA6C,4CAAM;AACnD,2CAA2C,4CAAM;;AAEjD,qCAAqC,oDAAI;;AAEzC;AACA;AACA,qCAAqC;AACrC,0CAA0C,iDAAG,YAAY,iDAAG;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA,0EAA0E,yDAAQ;AAClF;;AAEA;AACA,wEAAwE,yDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACtFD;AAAe;AACf;AACA,qCAAqC,0BAA0B;AAC/D;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACF;AACA;AACE;AACI;AACE;;;;;;;;;;;;;ACL7C;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yEAAyE,8CAA8C;AACvH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+DAA+D,qBAAqB,EAAE;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC1EnB;AAAA;AAAwB;;AAET;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,aAAa,kCAAkC,EAAE,EAAE;AACjG,wDAAwD,8BAA8B,EAAE;AACxF;;AAEA;AACA,6BAA6B,iDAAiD,EAAE;AAChF,0BAA0B,2CAA2C,EAAE;AACvE,8BAA8B,uDAAuD,EAAE;AACvF,sBAAsB,cAAc,aAAa,EAAE;AACnD,+BAA+B,mCAAmC,aAAa,EAAE;AACjF,iCAAiC,oBAAoB,aAAa,EAAE;AACpE,yBAAyB,YAAY,aAAa;AAClD;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,oDAAG;AACZ;;AAEA;AACA;AACA;;;;;;;;;;;;;ACxEA;AAAA;AAA6C;;AAE7C;;AAEA,YAAY,4CAAG;;AAEf;AACA;AACA;AACA;AACA;AACA,SAAS,2CAAM;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D,gBAAgB,EAAE;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACtCnB;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gDAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,uBAAuB,yDAAM,CAAC,+CAAK;AACzC;AACA,oBAAoB,kDAAQ,YAAY,kDAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,gDAAM,YAAY,gDAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,gDAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAe;AACf;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACE;AACJ;;;;;;;;;;;;;ACFpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,gDAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gDAAO;AACvB;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1HD;AAAA;AAAA;AAAO;AACA;;;;;;;;;;;;;ACDP;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;;AAEO;;;;;;;;;;;;;ACFP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1CA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACrC;AACM;AACV;AACQ;AACA;AACR;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,kBAAkB,yDAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,uDAAM;AACzB,WAAW,yDAAQ;AACnB,WAAW,sDAAK;AAChB,KAAK;AACL,2BAA2B,kDAAS;AACpC;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,qDAAI;AACd;AACA,KAAK;;AAEL;AACA,mDAAmD,OAAO;AAC1D,YAAY,yDAAQ;AACpB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,yDAAQ,CAAC,4CAAK,YAAY,yDAAQ;AAC9H;;AAEA;AACA,2DAA2D,6CAAI;AAC/D;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC1MD;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AAChB;AACM;AACF;AACA;;AAElC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAQ;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG,mCAAmC;AACpF,IAAI,mDAAK,EAAE,mCAAmC,GAAG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AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY,yCAAyC;AACrF;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,YAAY,yCAAyC;AACrF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACnKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACyE;AACA;AACrE;;;;;;;;;;;;;ACHlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2B;;AAE3B,UAAU,uDAAG;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVP;AAAA;AAAA;AAAA;AAAA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA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ACA,yBAAyB,uDAAM;AAC/B,yBAAyB,uDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC;AACzC;AACA,uBAAuB,uDAAM;AAC7B,uBAAuB,uDAAM;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,yDAAQ;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACjHD;AAAA;AAAkC;;AAEnB;AACf;AACA,iBAAiB,yDAAQ;AACzB;AACA;;AAEA,6CAA6C,yDAAQ;AACrD;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE,yDAAQ;AAChF;;AAEA;AACA,sEAAsE,yDAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACH;AACH;;AAExB;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAG;AAClB,gBAAgB,sDAAK;AACrB,cAAc,4DAAQ;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA,OAAO;;AAEP,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;A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;AACnB,wBAAwB,gDAAO;AAC/B,yBAAyB,gDAAO;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,+DAAS,WAAW,gDAAO,QAAQ,gDAAO;AACpD;AACA,iBAAiB,oEAAc;AAC/B;AACA,qBAAqB,oEAAc;AACnC,IAAI,+EAAyB;AAC7B,iBAAiB,+DAAS;AAC1B;AACA;AACA,kCAAkC,gDAAO;AACzC;AACA,uBAAuB,oDAAG;AAC1B;AACA,6BAA6B,gDAAO;AACpC;AACA,KAAK;AACL,8BAA8B,gDAAO;AACrC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,oDAAG;AACpB,GAAG;AACH;AACA;AACA,EAAE,mDAAU;AACZ;AACA;;AAEA;AACA,EAAE,mDAAU;AACZ;;AAEA;AACA;AACA,EAAE,mDAAU;AACZ,MAAM,oDAAG,aAAa,gDAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA,EAAE,0DAAM;;AAER;AACA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AClLD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;;AAE/C;AACP,UAAU,sDAAK,8BAA8B,qDAAI;AACjD;;AAEO;AACP,0DAA0D,oDAAG;AAC7D,mBAAmB,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACzD;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP,UAAU,qDAAI;AACd;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAA2F;AAC9D;AACI;;AAEjC;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,UAAU,gDAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,kCAAkC,oDAAG,mBAAmB,oDAAG,UAAU,oDAAG;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,gBAAgB,oDAAG;AACnB,gBAAgB,oDAAG;AACnB,OAAO,oDAAG;AACV;AACA;AACA;;AAEA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,mBAAmB,oDAAG;AACtB,mBAAmB,oDAAG;AACtB,UAAU,oDAAG;AACb,UAAU,sDAAK,CAAC,qDAAI;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC;AACA,eAAe,oDAAG;AAClB,gBAAgB,oDAAG;AACnB,gBAAgB,oDAAG;AACnB,OAAO,oDAAG;AACV;AACA;;AAEA;AACA,YAAY,gDAAO,SAAS,gDAAO;AACnC,eAAe,oDAAG;AAClB,mBAAmB,oDAAG;AACtB,mBAAmB,oDAAG;AACtB,UAAU,oDAAG;AACb;AACA;AACA;AACA,UAAU,qDAAI;AACd,UAAU,qDAAI;AACd,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,EAAE,0DAAM;;AAER;AACA;AACA;AACA;;AAEA;AACA,UAAU,iDAAQ;AAClB;AACA;AACA,aAAa,gDAAO;AACpB;AACA;AACA,YAAY,iDAAQ;AACpB;;AAEA,UAAU,sDAAK,SAAS,gDAAO,EAAE,qDAAI,KAAK,qDAAI,OAAO,gDAAO;AAC5D,CAAC;;;;;;;;;;;;;AC3ID;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC1C;AACoC;AAC7B;;AAE5C;AACO;AACP;AACA,kBAAkB,oDAAG;AACrB,kBAAkB,oDAAG;AACrB;AACA;AACA,8BAA8B,4CAAG;AACjC;AACA,GAAG;AACH;AACA;AACA,6DAA6D,4CAAG;AAChE;AACA,yBAAyB,iCAAiC;AAC1D,YAAY,+DAAS,0BAA0B,oDAAG,kBAAkB,oDAAG;AACvE;AACA;AACA;;AAEA;AACA;AACA,UAAU,+DAAS;AACnB,EAAE,+EAAyB;AAC3B,eAAe,qDAAI;AACnB,+CAA+C,4CAAG,GAAG,gDAAO,IAAI,4CAAG;AACnE;;AAEe;AACf,eAAe,4DAAQ;AACvB,eAAe,4DAAQ;AACvB,kBAAkB,4DAAQ;AAC1B;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA,YAAY,gDAAO,UAAU,gDAAO;AACpC;;AAEA;AACA;AACA,4CAA4C,gDAAO;AACnD,+CAA+C,gDAAO;AACtD;AACA,aAAa,kEAAa,SAAS,gDAAO,UAAU,gDAAO;AAC3D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACvED;AAAA;AAAA;AAA8B;AACsC;;AAErD,wHAAI;AACnB,cAAc,aAAa,EAAE;AAC7B;AACA;AACA,IAAI,2CAAE,GAAG,+CAAM;AACf,CAAC,EAAC;;AAEF;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,2CAAE,IAAI,2CAAE;AACxC,kBAAkB,oDAAG;AACrB,UAAU,oDAAG,SAAS,2CAAE,IAAI,gDAAO,GAAG;AACtC,6DAA6D,+CAAM,IAAI,+CAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sCAAsC,2CAAE,GAAG;AAClD,YAAY,oDAAG,oBAAoB,gDAAO,qBAAqB,gDAAO,CAAC;AACvE,YAAY,oDAAG,oBAAoB,gDAAO,qBAAqB,gDAAO;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,oDAAG;AAC7B,SAAS,oDAAG,sBAAsB,gDAAO;AACzC,QAAQ,qDAAI,EAAE,oDAAG,oBAAoB,oDAAG,UAAU,oDAAG;AACrD,YAAY,oDAAG,oBAAoB,oDAAG,UAAU,oDAAG;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,+CAAM;AAC5B,kBAAkB,2CAAE;AACpB;AACA,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB,iBAAiB,2CAAE;AACnB;AACA,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,kBAAkB,2CAAE;AACpB,GAAG,UAAU,oDAAG,oBAAoB,gDAAO;AAC3C,mCAAmC,2CAAE,IAAI,2CAAE;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;AC3FA;AAAA;AAA8B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,aAAa,gDAAI;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwH;AAC9E;AACsB;AACtB;AACZ;;AAEf;AACf,WAAW,oDAAG;AACd,kBAAkB,gDAAO;AACzB;AACA,sBAAsB,oDAAG,OAAO,gDAAO,CAAC;;AAExC;AACA,IAAI,+DAAY;AAChB;;AAEA;AACA,WAAW,oDAAG,WAAW,oDAAG;AAC5B;;AAEA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2CAAE,IAAI,2CAAE;AACxD;AACA;AACA;AACA,yBAAyB,8DAAU,oBAAoB,8DAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAU;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+DAAS;AACtB,aAAa,+DAAS;;AAEtB;AACA;AACA;AACA,aAAa,oEAAc;AAC3B,eAAe,kEAAY;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,oEAAc;AAC9B,YAAY,oEAAc;AAC1B,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;;AAEvB;AACA;AACA,YAAY,kEAAY;AACxB,aAAa,kEAAY;AACzB,2BAA2B,kEAAY;;AAEvC;;AAEA,YAAY,qDAAI;AAChB,YAAY,oEAAc;AAC1B,IAAI,yEAAmB;AACvB,QAAQ,+DAAS;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,oDAAG,SAAS,2CAAE,IAAI,gDAAO;AACzC,oCAAoC,gDAAO;;AAE3C;;AAEA;AACA;AACA;AACA,sCAAsC,oDAAG,mBAAmB,gDAAO;AACnE;AACA,kBAAkB,2CAAE;AACpB,eAAe,oEAAc;AAC7B,MAAM,yEAAmB;AACzB,iBAAiB,+DAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,2CAAE;AACrC;AACA,+BAA+B;AAC/B,mCAAmC;AACnC,4BAA4B;AAC5B,gCAAgC;AAChC;AACA;;AAEA,SAAS,yDAAI,gEAAgE,2CAAE,WAAW,2CAAE;AAC5F,CAAC;;;;;;;;;;;;;AChLD;AAAA;AAA2C;;AAE5B;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,6DAAa;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACA;AACM;AACS;AACrB;;AAEhB;AACf;AACA;AACA,qBAAqB,0DAAU;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB,sDAAK;AACxB,0BAA0B,mEAAe;AACzC;AACA;AACA,UAAU,0DAAU;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D,oCAAoC,+CAAM,GAAG,gDAAO,GAAG,+CAAM;AAC7D;;;;;;;;;;;;;AClIA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACH;AACJ;AACI;AACN;;AAE/B;;AAEA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,WAAW,oDAAG,cAAc,gDAAO;AACnC,UAAU,oDAAG,cAAc,gDAAO;AAClC,UAAU,oDAAG,cAAc,gDAAO;AAClC,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,0DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,OAAO;AAChD,kHAAkH,OAAO;AACzH;AACA,yBAAyB,yEAAyE;AAClG,gBAAgB,0EAA0E;AAC1F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,sDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,cAAc,wDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAAA;AAA0C;AACP;;AAEnC;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,yBAAyB;AACzB;;AAEA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,8DAAU;AAClB;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,mBAAmB,gDAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA,8BAA8B,OAAO;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,qCAAqC,QAAQ;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtGA;AAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAgE;AACd;AACN;;AAE5C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4DAAQ;AACjB;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD,SAAS,4DAAQ;AACjB;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA;AACA,6DAA6D,iDAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,mEAAe;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,gDAAO,aAAa,gDAAO;AAChD;;AAEe;AACf;AACA;AACA;AACA,C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;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACjD1B;AAAA;AAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf,gBAAgB,gDAAI;AACpB,cAAc,gDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC3B5B;AAAA;AAAgC;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,qDAAI;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,qDAAI;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACnG9B;AAAA;AAAA;AAAA;AAA+B;AACD;;AAEf;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAAG;AACpD;AACA;AACA;AACA,GAAG;AACH,UAAU,gDAAI;AACd;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACJ;AACD;AACI;AACI;AACF;AACA;AACF;;AAEtB;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,0DAAM;AACZ;AACA;AACA;;AAEA;AACA,IAAI,0DAAM,0BAA0B,gDAAQ;AAC5C,WAAW,gDAAQ;AACnB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,mDAAW;AAC/C,WAAW,mDAAW;AACtB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,kDAAU;AAC9C,WAAW,kDAAU;AACrB;;AAEA;AACA,IAAI,0DAAM,0BAA0B,oDAAY;AAChD,WAAW,oDAAY;AACvB;;AAEA;AACA,kFAAkF,oDAAQ;AAC1F;;AAEA;AACA;AACA,qDAAqD,kDAAU,QAAQ,mDAAW;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAA;AAAA;AAAgC;AACA;AACF;;AAE9B,gBAAgB,yDAAK;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,gDAAI;AACb;AACA;AACA,GAAG;AACH;AACA;AACA,yBAAyB,gDAAI;AAC7B,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAI;AACpB;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5C5B;AAAA;AAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1DA;AAAA;AAAuC;;AAExB;AACf,SAAS,oDAAG,gBAAgB,gDAAO,IAAI,oDAAG,gBAAgB,gDAAO;AACjE,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA+B;AACqD;AACY;;AAEhG,UAAU,yDAAK;;AAEf;AACA,MAAM,oDAAG,cAAc,2CAAE;AACzB;AACA;AACA,WAAW,qDAAI,eAAe,oDAAG,aAAa,2CAAE,IAAI,4CAAG,GAAG,2CAAE;AAC5D;;AAEe;AACf;AACA;AACA,eAAe,oDAAG;AAClB,gBAAgB,oDAAG,WAAW,oDAAG;AACjC;AACA;;AAEA;;AAEA,0BAA0B,+CAAM,GAAG,gDAAO;AAC1C,iCAAiC,+CAAM,GAAG,gDAAO;;AAEjD,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAS;AACxC,kBAAkB,oDAAG;AACrB,kBAAkB,oDAAG;;AAErB,mBAAmB,OAAO;AAC1B;AACA;AACA,iCAAiC,kDAAS;AAC1C,oBAAoB,oDAAG;AACvB,oBAAoB,oDAAG;AACvB;AACA;AACA;AACA,oCAAoC,2CAAE;AACtC;;AAEA,cAAc,sDAAK,YAAY,oDAAG,oCAAoC,oDAAG;AACzE,6CAA6C,4CAAG;;AAEhD;AACA;AACA;AACA,kBAAkB,oEAAc,CAAC,+DAAS,UAAU,+DAAS;AAC7D,QAAQ,+EAAyB;AACjC,2BAA2B,oEAAc;AACzC,QAAQ,+EAAyB;AACjC,4DAA4D,qDAAI;AAChE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gDAAO,YAAY,gDAAO,WAAW,gDAAO;AAC/D,CAAC;;;;;;;;;;;;;AC9ED;AAAA;AAAiD;;AAElC;AACf,SAAS,kEAAc;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAmC;AACF;AACgB;AACgB;;AAEjE;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY,wCAAwC,EAAE;AACjF,wBAAwB,YAAY,qCAAqC,EAAE;AAC3E,2BAA2B,YAAY,wCAAwC,EAAE;AACjF,yBAAyB,YAAY,sCAAsC,EAAE;AAC7E,8BAA8B,YAAY,2CAA2C,EAAE;AACvF,4BAA4B,YAAY,yCAAyC;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,gBAAgB,0DAAM;AACtB,eAAe,kEAAc;AAC7B,eAAe,kEAAc;AAC7B,4BAA4B,uBAAuB,gBAAgB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,gDAAO,kBAAkB,gDAAO,oBAAoB,gDAAO,kBAAkB,gDAAO;AAC1H;;AAEA;AACA;AACA,sCAAsC,gDAAO,kBAAkB,gDAAO,oBAAoB,gDAAO,kBAAkB,gDAAO;AAC1H;;AAEA;AACA;;AAEA;AACA,WAAW,yDAAS;AACpB;;AAEA;AACA,WAAW,uDAAO;AAClB;;AAEA;AACA,WAAW,wDAAQ;AACnB;;AAEA;AACA,WAAW,yDAAS;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC9GD;AAAA;AAAA;AAAA;AAAuD;;AAEhD;AACP;AACA,aAAa,oDAAG;AAChB,aAAa,oDAAG;AAChB;AACA;AACA,eAAe,oDAAG;AAClB,UAAU,oDAAG;AACb;AACA;AACA;;AAEO;AACP;AACA,YAAY,qDAAI;AAChB;AACA,aAAa,oDAAG;AAChB,aAAa,oDAAG;AAChB;AACA,MAAM,sDAAK;AACX,MAAM,qDAAI;AACV;AACA;AACA;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACuB;AACzB;;AAE7B,4BAA4B,kEAAY;AAC/C,SAAS,qDAAI;AACb,CAAC;;AAED,+BAA+B,qEAAe;AAC9C,aAAa,qDAAI;AACjB,CAAC;;AAEc;AACf,SAAS,yDAAU;AACnB;AACA;AACA,CAAC;;;;;;;;;;;;;AChBD;AAAA;AAAA;AAAA;AAAA;AAAqC;AACwB;AACzB;;AAE7B,8BAA8B,kEAAY;AACjD,cAAc,qDAAI,YAAY,oDAAG;AACjC,CAAC;;AAED,iCAAiC,qEAAe;AAChD;AACA,CAAC;;AAEc;AACf,SAAS,yDAAU;AACnB;AACA;AACA,CAAC;;;;;;;;;;;;;AChBD;AAAA;AAAA;AAAA;AAAgD;AACH;;AAEtC;AACP;AACA,aAAa,2CAAE;AACf,UAAU,mEAAiB;AAC3B;;AAEA;AACA,8CAA8C,gDAAO,gBAAgB,gDAAO,YAAY,gDAAO,SAAS,gDAAO;AAC/G;;AAEA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAsG;AAC3D;AACD;;AAE1C;AACA,SAAS,oDAAG,EAAE,+CAAM;AACpB;;AAEO;AACP,YAAY,oDAAG;AACf,sBAAsB,oDAAG,OAAO,oDAAG,OAAO,oDAAG,QAAQ,oDAAG;AACxD,gBAAgB,oDAAG;;AAEnB,iBAAiB,wDAAW;;AAE5B;AACA,gBAAgB,UAAU,+CAAM,GAAG,gDAAO,OAAO,+CAAM,GAAG,gDAAO,CAAC;AAClE,UAAU,SAAS,+CAAM,GAAG,gDAAO,MAAM,+CAAM,GAAG,gDAAO,CAAC;AAC1D,gBAAgB,oDAAG;AACnB,gBAAgB,oDAAG,iBAAiB,oDAAG;AACvC;;AAEA;AACA,wBAAwB,qDAAI,MAAM,qDAAI;AACtC,UAAU,sDAAK,IAAI,oDAAG,QAAQ,qDAAI;AAClC;AACA,WAAW,2CAAE,GAAG,qDAAI,MAAM,qDAAI;AAC9B,uBAAuB,qDAAI,CAAC,oDAAG,kBAAkB,+CAAM;AACvD;;AAEA;AACA;;AAEe;AACf,SAAS,iEAAe;AACxB;AACA;AACA,CAAC;;;;;;;;;;;;;ACrCD;AAAA;AAAA;AAAA;AAAA;AAA+E;AACpC;AACuB;;AAE3D;AACP,YAAY,oDAAG,iBAAiB,oDAAG;;AAEnC;AACA,MAAM,oDAAG,MAAM,gDAAO,SAAS,wFAAuB;;AAEtD,wCAAwC,qDAAI;;AAE5C;AACA,YAAY,qDAAI,aAAa,oDAAG;AAChC,gBAAgB,oDAAG,mBAAmB,oDAAG;AACzC;;AAEA;AACA;AACA,YAAY,sDAAK,IAAI,oDAAG,SAAS,qDAAI;AACrC;AACA,WAAW,2CAAE,GAAG,qDAAI,MAAM,qDAAI;AAC9B,mBAAmB,qDAAI;AACvB;;AAEA;AACA;;AAEe;AACf,SAAS,iEAAe;AACxB;AACA;AACA,CAAC;;;;;;;;;;;;;AChCD;AAAA;AAAA;AAAA;AAAA;AAAyE;AAC9B;AACa;;AAEjD;AACP,YAAY,oDAAG;AACf,sBAAsB,oDAAG,cAAc,oDAAG;AAC1C;;AAEA,MAAM,oDAAG,MAAM,gDAAO,SAAS,sEAAkB;;AAEjD;AACA;AACA,iBAAiB,oDAAG,eAAe,oDAAG;AACtC;;AAEA;AACA;AACA,YAAY,sDAAK,IAAI,oDAAG,QAAQ,qDAAI;AACpC;AACA,WAAW,2CAAE,GAAG,qDAAI,MAAM,qDAAI;AAC9B,uBAAuB,qDAAI,MAAM,qDAAI;AACrC;;AAEA;AACA;;AAEe;AACf,SAAS,iEAAe;AACxB;AACA;AACA,CAAC;;;;;;;;;;;;;AC/BD;AAAA;AAAA;AAA0C;;AAEnC;AACP,gBAAgB,oDAAG;;AAEnB;AACA,8BAA8B,oDAAG;AACjC;;AAEA;AACA,yBAAyB,qDAAI;AAC7B;;AAEA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAoC;AAC2B;;AAE/D;AACA;AACA;AACA;AACA,QAAQ,qDAAI;AACZ;;AAEO;AACP,UAAU,qDAAI,KAAK,oDAAG;AACtB;AACA,aAAa,oDAAG;AAChB;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,QAAQ,oDAAG,UAAU,iDAAQ;AAC7B;AACA;AACA,+DAA+D,oDAAG;AAClE,IAAI,qDAAI,CAAC,oDAAG;AACZ;AACA;;AAEe;AACf,SAAS,yDAAU;AACnB;AACA,CAAC;;;;;;;;;;;;;ACnCD;AAAA;AAAA;AAAoC;;AAE7B;AACP;AACA;;AAEA;;AAEe;AACf,SAAS,yDAAU;AACnB;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACL;;AAE7C;AACA;AACA;AACA;AACA,EAAE,0DAAS,2BAA2B,uDAAY;AAClD,YAAY,uDAAY;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACK;AACX;;AAE7B;AACP,WAAW,oDAAG,SAAS,oDAAG;AAC1B,eAAe,oDAAG,SAAS,oDAAG;AAC9B;;AAEA,qBAAqB,qEAAe,CAAC,6CAAI;;AAE1B;AACf,SAAS,yDAAU;AACnB;AACA;AACA,CAAC;;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AACX;AACM;AACqB;AACX;;AAEvC;AACf;AACA;AACA;AACA;AACA,kBAAkB,iEAAW;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oDAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,oDAAQ,IAAI,kEAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gDAAO,OAAO,oDAAG,cAAc,oDAAG,4BAA4B,gDAAO;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAS;AACpB;AACA;AACA,WAAW,uDAAO;AAClB;AACA;AACA,WAAW,wDAAQ;AACnB;AACA;AACA,WAAW,yDAAS;AACpB;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuD;AACZ;AACM;AACb;AACE;AACsB;AACf;AACD;AACqB;AAC5B;;AAErC,uBAAuB,iEAAW;AAClC;AACA,0BAA0B,gDAAO,MAAM,gDAAO;AAC9C;AACA,CAAC;;AAED;AACA,SAAS,iEAAW;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AAC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AACf,YAAY,oDAAG;AACf,YAAY,oDAAG;AACf;AACA;AACA,MAAM,sDAAK;AACX,MAAM,qDAAI;AACV;AACA;;AAEA;AACA;;AAEe;AACf,qCAAqC,gDAAO,cAAc,gDAAO,kCAAkC,gDAAO;;AAE1G;AACA,0CAA0C,gDAAO,mBAAmB,gDAAO;AAC3E,6BAA6B,gDAAO,oBAAoB,gDAAO;AAC/D;;AAEA;AACA,iDAAiD,gDAAO,mBAAmB,gDAAO;AAClF,6BAA6B,gDAAO,oBAAoB,gDAAO;AAC/D;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC3ED;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;;;;;;;;;;;ACpED;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,yBAAyB,EAAE;AACpD,sBAAsB,sBAAsB,EAAE;AAC9C,yBAAyB,yBAAyB,EAAE;AACpD,uBAAuB,uBAAuB,EAAE;AAChD,4BAA4B,4BAA4B,EAAE;AAC1D,0BAA0B,0BAA0B;AACpD;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAO;;AAEA;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACfA;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnFD;AAAA;AAAO;AACP;AACA;;AAEe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;AACY;AACF;AACZ;AACE;AACA;AACU;AACI;AACV;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,kDAAW;AACrB,SAAS,kDAAU;AACnB;AACA;;;;;;;;;;;;;AC9EA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA,wBAAwB;AACxB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACU;AACV;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;ACdrE;AAAA;AAA2C;;AAE5B;AACf,4BAA4B,yDAAO,CAAC,+CAAK;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kBAAkB;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHA;AAAA;AAAA;AAAA;AAA0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,gBAAgB,yDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC,yDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,8DAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,4DAAQ;AAC/E;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B,UAAU,gEAAW;AACrB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,wCAAwC,KAAK,2DAAO;;AAEvE;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEe;AACf;AACA;AACA,CAAC;;;;;;;;;;;;;ACrHD;AAAA;AAAA;AAA2C;AACC;;AAE7B;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAA;AAAwC;AACiB;;AAEzD;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,yCAAyC,wDAAI;AAC7C;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,oCAAoC,KAAK,EAAE,aAAa,iEAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,8DAAQ;AAC5C;;AAEA;AACA,0CAA0C,8DAAQ;AAClD;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxED;AAAA;AAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,aAAa;AACb;;AAEA,mCAAmC,wDAAI;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5OD;AAAe;AACf;AACA;AACA;;AAEA,6BAA6B,OAAO;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC7CD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAmC;AACE;AACI;AACa;;AAEvC;AACf,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,yDAAY;AACjC,mBAAmB,yDAAY;AAC/B,qBAAqB,yDAAY;AACjC,sBAAsB,yDAAY;AAClC,oBAAoB,yDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,8DAAQ;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,4EAA4E,4DAAQ;AACpF;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,4DAAQ;AAClF;;AAEA;AACA,4EAA4E,4DAAQ;AACpF;;AAEA;AACA,6EAA6E,4DAAQ;AACrF;;AAEA;AACA,2EAA2E,4DAAQ;AACnF;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC7FD;AAAA;AAAA;AAAA;AAAoC;AACE;AACW;;AAElC;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,OAAO;AACxD,sBAAsB,wDAAW;AACjC,aAAa,yDAAY;AACzB;AACA;AACA,KAAK;AACL,gCAAgC,kEAAa;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,EAAE,gDAAG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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;ACtDjD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,2BAA2B;AAC3B;AACA;AACA,wCAAwC;AACxC,2BAA2B;AAC3B;AACA,KAAK,OAAO;AACZ;AACA,cAAc,SAAS,0DAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA,SAAS;AACT,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAA;AAAA;AAAkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,0DAAM,SAAS,GAAG,aAAa,0DAAM,SAAS;AACzE,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,gCAAgC;AAChE,cAAc,sDAAsD,0DAAM,OAAO;AACjF,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,0DAAM,OAAO;AAChF,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,0DAAM,SAAS,GAAG,aAAa,0DAAM,SAAS;AACzE,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,kDAAQ;AAC3D,mDAAmD,kDAAQ;;;;;;;;;;;;;AC9DlE;AAAA;AAAA;AAAA;AAAmD;;AAEnD;AACA;AACA;AACA;;AAEO;AACP,+BAA+B,sDAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEO;AACP,4BAA4B,sDAAQ;AACpC;AACA;AACA,iEAAiE,sDAAQ;AACzE;AACA,SAAS,6DAAS;AAClB;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE7C;AACf;AACA,wCAAwC,4DAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,sDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,8CAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,qEAAa,MAAM,uDAAW;AACtC,2BAA2B,sDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAA0C;;;;;;;;;;;;;ACA1C;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACjIpB;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACdD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACfD;AAAA;AACA;AACA;AACA;AACe;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,OAAO;AACxB,uBAAuB,yDAAK;AAC5B;AACA;;AAEA,gCAAgC;AAChC;;AAEe;AACf;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,QAAQ;AAC3C,qBAAqB,qCAAqC;;AAE1D;AACA,CAAC;;;;;;;;;;;;;AChDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiD;AACQ;AACR;AACQ;AACJ;;;;;;;;;;;;;ACJrD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAe;AACf;AACA;AACA;AACA,CAAC;;AAED;AACA,wCAAwC;;AAExC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD,oDAAoD;AACpD,GAAG;AACH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;;;;;;;;;;;;;ACnFA;AAAe;AACf,kDAAkD;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1CD;AAAe;AACf;AACA;AACA,8CAA8C;AAC9C,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAA6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,gDAAI;AAC/B;AACA;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AAA;AAAA;AAAA;AAAgC;AACoE;AACjE;AACD;AACJ;;AAE9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC,QAAQ,yDAAQ;AAChB;;AAEA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,uDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,0DAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,gEAAiB;AACzG;;AAEA;AACA,wCAAwC,0CAAG,SAAS,+CAAM;AAC1D;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA,mBAAmB,4CAAK,wBAAwB,+DAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;AC3HA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACL;AACI;AACC;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,yDAAS,eAAe,oDAAQ;;AAE9C;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,oDAAO;;AAErB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,yDAAS;;AAEvB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,mDAAM;;AAEpB;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP;AACA;;;;;;;;;;;;;AC1FA;AAAA;AAAA;AAAA;AAAA;AAA4B;AACO;AACL;;AAEf;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wCAAwC,0CAAG,SAAS,+CAAM;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,0CAAG,cAAc,+CAAM;;AAErD,SAAS,yDAAS;AAClB;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGgB;;AAII;;AAIF;;AAIH;;AAIG;;AAKC;;AAKJ;;AAIK;;AAIA;;AAIC;;AAIL;;AAIG;;AAQG;;AAIQ;;AAQT;;AAIC;;;;;;;;;;;;;ACzEtB;AAAA;AAAA;AAAO;AACP;AACA;AACA,+BAA+B;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEO;AACP;AACA;AACA,sCAAsC;AACtC,4DAA4D;AAC5D;AACA;AACA;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACU;AACvB;AACK;;AAE/B;AACP;;AAEA;AACA;AACA,WAAW,sDAAK;AAChB;;AAEA;AACA;AACA,WAAW,2DAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,8DAAa;;AAExB;AACA;AACA;AACA,aAAa,8DAAa;AAC1B,KAAK;AACL;AACA;AACA,aAAa,8DAAa;AAC1B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,2DAAU,CAAC,oDAAQ,EAAE,oDAAQ;;AAE3C;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;ACvEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACE;AACP;AACqB;AACd;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B,EAAE;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,OAAO;AAC1B,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,sDAAK;AACf;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,wDAAM;AAC3D;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,qDAAI;AACtB,0BAA0B,kCAAkC,EAAE;AAC9D,yBAAyB,iCAAiC;AAC1D,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,sBAAsB,+DAAW;;AAEjC;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;AChJA;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjBD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACJ;AACG;;AAE1B,gBAAgB;;AAER;AACf,cAAc,yDAAG;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,yDAAG;AAC5B;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,+CAAS;;AAEX;AACA;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmC;AACsB;AACxB;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,oDAAQ,EAAE,oDAAQ;AAC1C;;AAEA;AACA,sCAAsC,oDAAQ,EAAE,oDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,yDAAS;AAClB;;AAEe;AACf,qBAAqB,+DAAW;;AAEhC;AACA,WAAW,wDAAI;AACf;;AAEA,EAAE,+CAAS;;AAEX;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAkE;AACpC;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,yDAAS;AACjD;AACA;;AAEA;AACA,2CAA2C,uDAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACF;AACK;AACF;;AAElB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,4CAAK;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS,OAAO,yDAAS;AAClC;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACL;AACK;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,yDAAS,eAAe,oDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,oDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,yDAAS;;AAEvB;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP,cAAc,mDAAM;;AAEpB;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;AAEO;AACP;AACA;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACL;AACE;;AAEzB;AACf;AACA,qBAAqB,oDAAQ;;AAE7B;AACA,6CAA6C,uDAAM;AACnD;;AAEA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,sDAAgB;AACzB;;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmC;AACY;AACd;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA,SAAS,yDAAS;AAClB;;AAEe;AACf,wBAAwB,+DAAW;;AAEnC;AACA,WAAW,wDAAI;AACf;;AAEA,SAAS,+CAAS;AAClB;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACF;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA,wCAAwC,4CAAK;AAC7C;;AAEA;AACA,uCAAuC,4CAAK;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,+CAAS;AAClB;;;;;;;;;;;;;ACvCA;AAAA;AAAA;AAAkC;AAC+E;;AAElG;AACf,aAAa,yDAAQ;AACrB;AACA,cAAc,iEAAe;AAC7B;AACA;AACA;AACA,4DAA4D,iEAAe;AAC3E,aAAa,8DAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gEAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,gEAAc;AAC1E;AACA;AACA;AACA,SAAS,wDAAM;AACf,CAAC;;;;;;;;;;;;;AC5BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACsE;AACxE;AACd;AAC4B;AACvB;AACP;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,cAAc,2DAAU,CAAC,oDAAQ,EAAE,oDAAQ;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAQ,cAAc,aAAa,EAAE;AACnD;AACA,eAAe,yDAAQ;AACvB;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,wBAAwB,yDAAQ;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,0CAAG;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qDAAI;AACrB;AACA;;AAEA;AACA,WAAW,wDAAI;AACf;;AAEA;AACA;;AAEe;AACf,SAAS,+CAAS,gBAAgB,gDAAQ,EAAE,iDAAS,EAAE,gDAAQ,EAAE,+CAAO,EAAE,gDAAQ,EAAE,kDAAU,EAAE,kDAAU,EAAE,uDAAe,EAAE,yDAAU;AACvI,CAAC;;;;;;;;;;;;;ACtID;AAAA;AAAA;AAAA;AAAA;AAAgC;AACS;AACiE;AACzE;;AAElB;AACf,SAAS,+CAAS,OAAO,sDAAQ,CAAC,+CAAO,EAAE,gDAAQ,EAAE,+CAAO,EAAE,8CAAM,EAAE,+CAAO,EAAE,iDAAS,EAAE,iDAAS,EAAE,sDAAc,EAAE,wDAAS;AAC9H,CAAC;;;;;;;;;;;;;ACPD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAgC;AACF;;AAEf;AACf,SAAS,uDAAM,CAAC,wDAAO;AACvB,CAAC;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAoC;AACD;;AAEnC;AACA;AACA;AACA;AACA,mBAAmB,iDAAK,8CAA8C,iDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;AAC1B;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACE;AACJ;AACI;AACJ;AACQ;AACE;AACJ;AACJ;AACM;AACM;AACR;AACM;AACC;AACb;AACI;AACF;AACO;;;;;;;;;;;;;ACjBlD;AAAA;AAAA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,cAAc,4DAAW;AACzB;AACA,SAAS,sDAAK;AACd,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAsC;;AAEvB;AACf;AACA;AACA,SAAS,mDAAU,2BAA2B,OAAO,mDAAU,sBAAsB;AACrF,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAO;;AAEQ;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACRF;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,qCAAqC,qDAAI;AAC9D,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAiC;;AAElB;AACf,mDAAmD,wDAAO;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAkC;AACA;AACC;;AAEnC,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,2BAA2B,eAAe,EAAE;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,yDAAQ;;AAEnD,sGAAsG,OAAO;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AAC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ACjBD;AAAe;;AAEf,2DAA2D,OAAO;AAClE,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAe;AACf;AACA,wBAAwB,mBAAmB,EAAE;AAC7C;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;;AAEO;;AAEP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA,6CAA6C,OAAO;AACpD,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;AC1GA;AAAe;;AAEf,4DAA4D,SAAS;AACrE,4EAA4E,UAAU;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC3BD;AAAA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAkC;AACC;;AAEpB;AACf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A;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,8CAA8C;AAC9C,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B,oFAAoF;AAClH,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AClDD;AAAA;AAAA;AAA8B;AACG;;AAEjC;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,4BAA4B;AAC1D,8BAA8B,4BAA4B,4FAA4F;AACtJ,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,oFAAoF,0EAA0E;AAC5L,8BAA8B;AAC9B,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACtCD;AAAA;AAAiC;;AAEjC;AACA,oBAAoB,+CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4BAA4B,+CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;ACvDT;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B,4BAA4B;AAC1D,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAA;AAA8B;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAoC;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AChDN;AAAA;AAAA;AAAA;AAAmC;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B;AAC9B,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,wDAAwD,qDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACvFR;AAAA;AAAA;AAAA;AAAmD;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,8DAA8D,iEAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACzER;AAAA;AAAA;AAA+C;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4DAA4D,6DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;AC7DR;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AC9BD;AAAA;AAA8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,4DAA4D;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B,wDAAwD;AACtF,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B,EAAE;AACxD,yBAAyB,2BAA2B,EAAE;AACtD,0BAA0B,4BAA4B,EAAE;AACxD,iDAAiD,mDAAmD;AACpG;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACvGA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA,aAAa,OAAO;AACpB;AACA,iBAAiB,QAAQ;AACzB;AACA,aAAa,WAAW;AACxB;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AChED;AAAA;AAAA;AAAA;AAAsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACpDA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkH;AAC1D;AACJ;AACF;;;;;;;;;;;;;ACHlD;AAAA;AAAA;AAA6C;;AAEtC;;AAEP;AACA;AACA;;AAEA;AACA;AACA,MAAM,mEAAS;;AAEA,wEAAS,EAAC;;;;;;;;;;;;;ACZzB;AAAA;AAAA;AAA4C;AACA;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,kEAAQ,CAAC,0DAAY;;AAEZ,uEAAQ,EAAC;;;;;;;;;;;;;ACZxB;AAAA;AAAA;AAWiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iDAAS,cAAc,yDAAS;AACxE,iBAAiB,8CAAM;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,kDAAU,cAAc,0DAAU;AAC1E,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,+CAAO,OAAO,wDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kDAAU,OAAO,wDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,4DAAY,MAAM,oDAAY;AACjE;;AAEA;AACA;AACA,aAAa,oDAAY,OAAO,wDAAQ,WAAW,wDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,kDAAU,OAAO,wDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,4DAAY,MAAM,oDAAY;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAAM,OAAO,uDAAO;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAS,OAAO,uDAAO;AACpC;;AAEA;AACA;AACA,mCAAmC,2DAAW,MAAM,mDAAW;AAC/D;;AAEA;AACA;AACA,aAAa,mDAAW,OAAO,uDAAO,WAAW,uDAAO;AACxD;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAS,OAAO,uDAAO;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,2DAAW,MAAM,mDAAW;AAC5D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC1rBA;AAAA;AAAA;AAAA;AAAqC;AACqB;;AAE1D,UAAU,4DAAQ;AAClB;AACA,CAAC;AACD;AACA,CAAC;AACD,gFAAgF,2DAAc,IAAI,wDAAW;AAC7G,CAAC;AACD;AACA,CAAC;;AAEc,kEAAG,EAAC;AACZ;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACJP;AAAA;AAAA;AAAA;AAAqC;AACsC;;AAE3E,WAAW,4DAAQ;AACnB,mEAAmE,2DAAc,uBAAuB,2DAAc;AACtH,CAAC;AACD,8BAA8B,yDAAY;AAC1C,CAAC;AACD,yBAAyB,yDAAY;AACrC,CAAC;AACD;AACA,CAAC;;AAEc,mEAAI,EAAC;AACb;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEuB;;AAOG;;AAOL;;AAKA;;AAKF;;AAKD;;AAmBC;;AAKC;;AAKD;;AAKK;;AAKF;;AAKD;;AAmBC;;AAKC;;AAKD;;;;;;;;;;;;;ACxGtB;AAAA;AAAA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mDAAmD;AACnD,SAAS;AACT,mDAAmD;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D,6BAA6B,0CAA0C,EAAE;AACzE;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrEA;AAAA;AAAA;AAAqC;;AAErC,kBAAkB,4DAAQ;AAC1B;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEe,0EAAW,EAAC;AACpB;;;;;;;;;;;;;ACzBP;AAAA;AAAA;AAAA;AAAqC;AACwB;;AAE7D,aAAa,4DAAQ;AACrB,mEAAmE,2DAAc;AACjF,CAAC;AACD,8BAA8B,2DAAc;AAC5C,CAAC;AACD,yBAAyB,2DAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAEc,qEAAM,EAAC;AACf;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAqC;;AAErC,YAAY,4DAAQ;AACpB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAEc,oEAAK,EAAC;AACd;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAqC;AACQ;;AAE7C,aAAa,4DAAQ;AACrB;AACA,CAAC;AACD,8BAA8B,2DAAc;AAC5C,CAAC;AACD,yBAAyB,2DAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAEc,qEAAM,EAAC;AACf;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAqC;AACK;;AAE1C,aAAa,4DAAQ;AACrB;AACA,CAAC;AACD;AACA,CAAC;AACD,yBAAyB,wDAAW;AACpC,CAAC;AACD;AACA,CAAC;;AAEc,qEAAM,EAAC;AACf;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAqC;AACM;;AAE3C,cAAc,4DAAQ;AACtB;AACA,CAAC;AACD,8BAA8B,yDAAY;AAC1C,CAAC;AACD,yBAAyB,yDAAY;AACrC,CAAC;AACD;AACA,CAAC;;AAEc,sEAAO,EAAC;AAChB;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAqC;AACQ;;AAE7C,gBAAgB,4DAAQ;AACxB;AACA,CAAC;AACD,8BAA8B,2DAAc;AAC5C,CAAC;AACD,yBAAyB,2DAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAEc,wEAAS,EAAC;AAClB;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAqC;;AAErC,eAAe,4DAAQ;AACvB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAEc,uEAAQ,EAAC;AACjB;;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACM;;AAE3C;AACA,SAAS,4DAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,2BAA2B,yDAAY;AACvC,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BP;AAAA;AAAA;AAAqC;;AAErC,cAAc,4DAAQ;AACtB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,4DAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEe,sEAAO,EAAC;AAChB;;;;;;;;;;;;;ACzBP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACsB;;AAE3D;AACA,SAAS,4DAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,kFAAkF,2DAAc,IAAI,yDAAY;AAChH,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BP;AAAA;AAAA;AAAqC;;AAErC,WAAW,4DAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,4DAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEe,mEAAI,EAAC;AACb;;;;;;;;;;;;;ACzBP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIoB;;AAIE;;AAIC;;;;;;;;;;;;;ACZvB;AAAA;AAAsC;;AAEvB;AACf,cAAc,+CAAK;AACnB;AACA,wCAAwC,qDAAG;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAiC;;AAElB;AACf,cAAc,+CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mBAAmB;;AAEjJ;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC7GA;AAAA;AAAA;AAAiD;AACE;;AAEnD;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,iEAAS;AACrD,mBAAmB,+DAAU;AAC7B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AAC8B;AACd;AACM;;;;;;;;;;;;;ACHpD;AAAA;AAAiE;;AAElD;AACf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kDAAkD,eAAe,UAAU;AAC3E,8BAA8B,gEAAQ,qBAAqB,8DAAM;AACjE,qBAAqB,6DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAuC;AACU;AACE;;AAEnD,sDAAS,uBAAuB,qDAAmB;AACnD,sDAAS,wBAAwB,sDAAoB;;;;;;;;;;;;;ACLrD;AAAA;AAAwC;;AAEzB;AACf;AACA,IAAI,6DAAS;AACb,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,sDAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,oDAAG;AACrC;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA,sBAAsB,+DAAU;AAChC;AACA,GAAG;AACH,SAAS,kEAAK,oCAAoC,oDAAG;AACrD;;AAEA,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,+DAAU;AACvB,CAAC;;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AAAA;AAA+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,8DAAS,uCAAuC,sEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,4DAAU;AAChF;AACA;AACA,CAAC;;;;;;;;;;;;;AC7ED;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,iBAAiB,8DAAS;AAC1B;AACA,CAAC;;;;;;;;;;;;;AC3CD;AAAA;AAAwC;;AAExC;AACA;AACA,IAAI,yDAAI;AACR;AACA;;AAEA;AACA;AACA,IAAI,yDAAI;AACR;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA,QAAQ,wDAAG;AACX,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAuC;;AAEvC;AACA;AACA,IAAI,wDAAG;AACP;AACA;;AA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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA,0DAA0D;AAC1D;AACA,IAAI,wDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAsC;AACA;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,6DAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA,QAAQ,4DAAQ,qCAAqC,wDAAG;AACxD;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAyC;AACH;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,gEAAW;;AAExD,yFAAyF,OAAO;AAChG,8DAA8D,OAAO;AACrE;AACA,yFAAyF,wDAAG,uCAAuC,OAAO;AAC1I;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAuC;;AAEvC,gBAAgB,sDAAS;;AAEV;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB,oDAAoD,0DAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA,6EAA6E,0DAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,yCAAyC,sEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,4DAAU;AACzD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC/ED;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,qBAAqB,4DAAU;AAC/B;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAA6C;AACD;;AAE7B;AACf;AACA;AACA,YAAY,uDAAK;;AAEjB,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,sBAAsB,wDAAG;AACzB,QAAQ,4DAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;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AEA,EAAE,+DAAiB;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb,IAAI,uDAAS;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oDAAoD,QAAQ,+DAAiB,iBAAiB,EAAE;AAChG;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA;AACA;AACA;;;;;;;;;;;;;AC7IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;;AAEzC;AACP;AACA,cAAc,8CAAK;AACnB;AACA;AACA;AACA;AACA,EAAE,8CAAK;AACP,EAAE,8CAAK;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,UAAU,8CAAK;AACf;;AAEA;AACA,4BAA4B,8CAAK;AACjC;AACA,iDAAiD,gDAAO;AACxD,mDAAmD,gDAAO;AAC1D,aAAa,8CAAK;AAClB;AACA;AACA;;;;;;;;;;;;;ACvKA;AAAA;AAAA;AACA,gBAAgB;AAChB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gBAAgB,QAAQ;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5O5B;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAA6C;;;;;;;;;;;;;ACA7C;AAAA;AAAA;AAAO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAkC;AACe;AACN;;AAE5B;AACf,UAAU,wCAAM;AAChB,UAAU,wCAAM;AAChB;;AAEA;AACA,eAAe,gDAAO;AACtB,0CAA0C,gDAAO,IAAI,gDAAO,6BAA6B,gDAAO,IAAI,gDAAO;AAC3G;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA,iEAAiE,yDAAQ;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/CD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACwC;;;;;;;;;;;;;ACDlF;AAAA;AAAA;AAAmC;;AAE5B;AACP,EAAE,kDAAK;AACP;;AAEe;AACf,EAAE,kDAAK;AACP,EAAE,kDAAK;AACP,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;;AAEP;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACD;AACuB;AAC9B;AACH;AACF;AACgB;AACC;;AAEpD;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,sDAAQ;AAChC;;AAEA;AACA,UAAU,kDAAK,WAAW,kDAAK,0BAA0B,kDAAK;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAe;AACnC,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ;AAC/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,+CAA+C,uDAAS;AACxD;;AAEA;AACA;AACA,oEAAoE,uDAAS;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,kCAAkC,EAAE;AAC1E,mDAAmD,gCAAgC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,kBAAkB,4BAA4B,SAAS,uDAAS,sCAAsC;AACtG;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAS;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAK;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+DAAS;AACf;AACA;;AAEA,IAAI,2DAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,2DAAM,CAAC,kDAAK;AACxB,YAAY,0DAAK;AACjB,aAAa,kDAAK;AAClB,aAAa,kDAAK;;AAElB,IAAI,2DAAW,CAAC,kDAAK;AACrB,IAAI,iEAAa;AACjB;AACA,IAAI,+DAAS;AACb;;AAEA;AACA,MAAM,2DAAO;AACb;AACA,iBAAiB,kDAAK,oBAAoB,kDAAK;AAC/C;AACA;AACA,sEAAsE,0DAAK;AAC3E;;AAEA;AACA;AACA,MAAM,0DAAU,CAAC,kDAAK;AACtB,MAAM,2DAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0DAAK;AAClB;AACA,qBAAqB,kDAAK;AAC1B;;AAEA,IAAI,2DAAO;AACX,sBAAsB,2DAAM;AAC5B,SAAS,2DAAM;AACf;;AAEA;AACA;AACA,kBAAkB,kDAAK;AACvB;AACA,qCAAqC,kDAAK;AAC1C;;AAEA,IAAI,iEAAa;AACjB,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6DAA6D,sBAAsB,EAAE;AACrF,MAAM,+DAAS;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,2DAAO;AACX;AACA;AACA,eAAe,OAAO;AACtB,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB;AACA,yCAAyC,oBAAoB,EAAE;AAC/D,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAM;AACtB;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,4DAAQ;AAClF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AClaD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,eAAe,+WAA+W,oBAAoB,sMAAsM,oBAAoB,sBAAsB,oBAAoB,MAAM,oBAAoB;AAChrB,uBAAuB;AACvB,oBAAoB;;;;;;;;;;;;;ACf3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACjB;AACD;AACC;AACA;AACK;AACL;AACE;AACC;AACJ;AACD;AACC;AACC;AACA;AACC;AACH;AACM;AACE;AACP;AACG;AACC;AACF;AACD;AACU;AACN;AACJ;AACD;AACO;AACN;AACK;AACH;AACH;;;;;;;;;;;;;AC/BX;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,IAAI;AACN;;AAEA;;AAEA;;;;;;;;;;;;AC9GA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/IA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE,mDAAmD;AACrD;;;AAGA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA,gBAAgB;AAChB,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,0EAA0E;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,yDAAQ;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,wDAAwD,4DAAW;AACnE,OAAO;AACP;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,IAAI;;;AAGJ;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA,KAAK;;;AAGL,wCAAwC;AACxC;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAE2B;AAC3B;;;;;;;;;;;;;ACjgBa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACO;AACmB;AAC/B;AACC;AACtB;AACP,WAAW,sDAAQ,EAAE,4DAA4D,aAAa;AAC9F,cAAc,4DAAQ;AACtB;AACA,QAAQ,+EAAwB;AAChC;AACA;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACuC;AAC1C;AACpC;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACO;AACP;AACA;AACA,aAAa,8DAAe,SAAS,8DAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA,oBAAoB,+DAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,yBAAyB;AAC1G,6BAA6B,wDAAQ;AACrC,kDAAkD,4DAAc;AAChE;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4C;AAC5C;AACgC;AACwC;AACxE;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB,EAAE;AACnF,iEAAiE,wBAAwB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB,EAAE;AACnF,iEAAiE,wBAAwB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yBAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA,kCAAkC;AAClC;AACA,8BAA8B,mBAAmB;AACjD,+BAA+B,UAAU;AACzC,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI,8BAA8B;AAClE;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI,uCAAuC;AAC3E;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI,iCAAiC;AACrE;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA,oBAAoB;AACpB,2CAA2C;AAC3C,oBAAoB;AACpB,2CAA2C;AAC3C;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI,yBAAyB;AAC7D;AACA;AACA,0BAA0B;AAC1B,oDAAoD,KAAK;AACzD;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,sDAAQ,EAAE,4EAA4E,qEAAmB,aAAa,EAAE;AACvI;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD,+BAA+B,mCAAmC,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,2BAA2B,2CAAI,4BAA4B,2CAAI,QAAQ,2CAAI,+CAA+C;AACnJ;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,uEAAuE,KAAK;AAC5E;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,gFAAgF,uEAAqB,cAAc,EAAE;AAC9I;AACA,+BAA+B,uCAAuC,aAAa;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,GAAG;AACpB;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,OAAO,2CAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,GAAG;AACpB;AACA;AACA;AACA,iCAAiC,2BAA2B,aAAa;AACzE;AACA;AACA,eAAe,sDAAQ,EAAE;AACzB,0BAA0B;AAC1B;AACA,iCAAiC,2BAA2B,aAAa;AACzE;AACA;AACA,eAAe,sDAAQ,EAAE;AACzB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;ACtiGP;AAAA;AAAA;AAAA;AAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI,GAAG,IAAI,MAAM,IAAI,cAAc,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,WAAW,IAAI;AACrK;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,YAAY,yBAAyB,6CAA6C,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,oCAAoC,EAAE,IAAI;AAC/M;AACA;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,YAAY,0BAA0B,6CAA6C,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,oCAAoC,EAAE,IAAI;AAChN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,GAAG;AAC7C;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ,CAAC,sDAAQ,GAAG;AACzC;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ,CAAC,sDAAQ,GAAG;AACzC;AACA;AACA;AACA;;;;;;;;;;;;;AC5SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACd;AACP;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAC+C;AACd;AACN;AACC;AACb,0HAAiB,EAAC;;;;;;;;;;;;;ACTjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACiD;AACC;AACV;AACM;AAC9C;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,WAAW,aAAa;AAChE,iBAAiB,sDAAQ,CAAC,sDAAQ,GAAG,sBAAsB;AAC3D;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,sDAAQ,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mDAAe,IAAI,yCAAO;AAC7C;AACA;AACA,2BAA2B;AAC3B,kBAAkB;AAClB,oBAAoB;AACpB,uBAAuB;AACvB,MAAM;AACN;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,gEAAgE,4DAAc;AAC9E,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,kEAAkE,4DAAc;AAChF,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,+DAA+D,4DAAc;AAC7E,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAA2C;AAC5E;AACA,sBAAsB;AACtB,wBAAwB;AACxB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAa;AAChC;AACA,4CAA4C;AAC5C;AACA,SAAS,EAAE;AACX,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gCAAgC,+DAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AAC4B;;;;;;;;;;;;;AClO7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AAC3B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACgC;AACjC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;;;;;;;;;;;AC/C7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsO;AAClI;AAC7F;AACP;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4BAA4B,kFAAgB;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA,YAAY,kFAAgB;AAC5B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,gFAAc;AAC1B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wDAAiB;AACvC;AACA;AACA,YAAY,mFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,+EAAa;AACzB;AACA;AACA,kBAAkB,oFAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,+EAAa;AACzB;AACA;AACA,kBAAkB,oFAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,iFAAe;AAC3B;AACA;AACA,kBAAkB,kFAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,8EAAY;AACxB;AACA;AACA;AACA,0BAA0B,4DAAqB;AAC/C;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,iFAAe;AAC3B;AACA;AACA,0BAA0B,wDAAiB;AAC3C;AACA;AACA;AACA;AACA,YAAY,iFAAe;AAC3B;AACA;AACA;AACA,8BAA8B,kDAAW;AACzC;AACA;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA,0BAA0B,wDAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChLA;AACA;AACA,oCAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAAA;AAAA;AAAA;AAAA,oGAAE;AACH,CAAC;;;;;;;;;;;;ACpBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;;AAEhD;AACA,EAAE,iCAAQ,EAAE,2CAAQ,EAAE,8EAAW,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAE;AAC9C,EAAE,MAAM,EAIN;AACF,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,IAAI,YAAY,IAAI,YAAY,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;;AAEJ;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB;AACxB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,MAAM,qBAAqB;AAC3B;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,kBAAkB,IAAI,qBAAqB;AAC5D;AACA;AACA,IAAI;;AAEJ;AACA;AACA,MAAM,qBAAqB;AAC3B;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,uBAAuB;AACzC,kBAAkB,uBAAuB;AACzC,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;;AAED;;AAEA,CAAC;;;;;;;;;;;;AClmDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;;AAEhD;AACA,EAAE,iCAAQ,EAAE,2CAAQ,EAAE,8EAAW,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAE;AAC9C,EAAE,MAAM,EAIN;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;AC5CD;AACA,MAAM,IAA0C;;AAEhD;AACA,EAAE,iCAAQ,EAAE,2CAAQ,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAE;AACjC,EAAE,MAAM,EAIN;AACF,CAAC;;AAED;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;;AAEhD;AACA,EAAE,iCAAQ;AACV,GAAG,2CAAQ;AACX,GAAG,+EAAY;AACf,GAAG,+EAAY;AACf,GAAG,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAE;AACd,EAAE,MAAM,EAIN;AACF,CAAC;;AAED,iBAAiB,cAAc,oBAAoB,EAAE;;AAErD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB,wBAAwB;AACxB,2BAA2B;AAC3B,iCAAiC;AACjC,wBAAwB;AACxB,uCAAuC;AACvC,4CAA4C;AAC5C,4CAA4C;AAC5C,8CAA8C;AAC9C,4CAA4C;AAC5C,+CAA+C;AAC/C,wDAAwD;AACxD,kDAAkD;AAClD,qDAAqD;AACrD,oBAAoB;AACpB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA,oEAAoE;AACpE,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,YAAY,uDAAuD;AACnE;AACA;AACA,MAAM,oDAAoD;AAC1D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,iCAAiC,aAAa,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,EAAE;AAC/C,0BAA0B,6BAA6B;AACvD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4CAA4C,EAAE,GAAG;AACvE,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB,EAAE;AAC9C,0BAA0B,oCAAoC;AAC9D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4CAA4C,EAAE,GAAG;AACvE;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,mBAAmB;AACnB;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,GAAG,oDAAoD;AACvD;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA,2FAA2F;AAC3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA,mBAAmB,yDAAyD;AAC5E;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qDAAqD;;AAErD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA,mBAAmB;AACnB,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,iDAAiD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gFAAgF;AAChF,GAAG;AACH,kCAAkC;AAClC;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,mEAAmE;AACnE,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,2FAA2F;AAC3F;AACA;AACA,mBAAmB,gBAAgB,WAAW;AAC9C;AACA;AACA;AACA,mBAAmB,SAAS,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH;AACrH;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA,mBAAmB;AACnB;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA,gCAAgC;AAChC;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;ACvkED;AACA;AACA;AACA;AACA;AACa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnDA;AACA,IAAI,KAA4D;AAChE,IAAI,SAC2G;AAC/G,CAAC,4BAA4B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,4CAA4C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,4CAA4C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C,qCAAqC,0CAA0C;AAC/E,iCAAiC,sCAAsC;AACvE,kCAAkC,uCAAuC;AACzE,oBAAoB,wBAAwB;AAC5C,sBAAsB,0BAA0B;AAChD,wBAAwB,4BAA4B;AACpD,mBAAmB,wBAAwB;AAC3C,sBAAsB,2BAA2B;AACjD,gCAAgC,qCAAqC;AACrE,oBAAoB,wBAAwB;AAC5C,0BAA0B,+BAA+B;AACzD,qBAAqB,0BAA0B;AAC/C,oBAAoB,yBAAyB;AAC7C,sBAAsB,2BAA2B;AACjD,wBAAwB,4BAA4B;AACpD,yBAAyB,8BAA8B;AACvD,qBAAqB,0BAA0B;AAC/C,uBAAuB,4BAA4B;AACnD,8BAA8B,kCAAkC;AAChE,8BAA8B,mCAAmC;AACjE,wBAAwB,4BAA4B;AACpD,yBAAyB,6BAA6B;AACtD,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,kBAAkB,gCAAgC;AAClD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kDAAkD,cAAc;;AAEhE,CAAC;;;;;;;;;;;;;ACxsED;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,SAAM;AAC7I;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,kDAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,CAAC,MAAM,EAIN;;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;;ACXA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACW;AACG;AACkB;AAC1F;AAC6B;AACY;AACV;AACQ;AACe;AACtD,0BAA0B,gDAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kGAAwB;AACxC,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,0DAAO;AACpB;AACA;AACA,aAAa,0DAAO;AACpB;AACA;;AAEA;AACA,aAAa,0DAAO;AACpB;AACA;;AAEA;AACA,aAAa,0DAAO;AACpB;AACA;AACA,aAAa,0DAAO;AACpB;AACA;AACA,aAAa,0DAAO;AACpB;AACA;AACA,aAAa,0DAAO;AACpB;AACA;AACA,aAAa,0DAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB,WAAW,0DAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,+DAAiB;;AAEvC;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAQ;AAC5B,yBAAyB,sDAAQ;AACjC,qCAAqC,sDAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mDAAmB,QAAQ,kFAAQ;AACnE;AACA,eAAe,iDAAG,kBAAkB,yFAAe,CAAC,yFAAe,GAAG;AACtE,WAAW,wFAAa,CAAC,wFAAa,CAAC,wFAAa,GAAG;AACvD,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD,IAAI,IAAqC;AACzC;AACA;AACe,qEAAM,E;;;;;;;;;;;;AC1JrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACW;AACC;AACoB;AAC1F;AAC+B;AACI;AACL;AAC9B,2BAA2B,gDAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kGAAwB;AACxC,mBAAmB,4CAAY,GAAG;AAClC,EAAE,yDAAyB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,wBAAwB,8CAAc;AACtC,uBAAuB,wFAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,wFAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,mDAAmB,CAAC,8CAAc;AACxD,wBAAwB,mDAAmB,CAAC,+CAAM,EAAE,kFAAQ;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,aAAa,sDAAQ;AACrB;AACA;AACA;AACA,KAAK;AACL,GAAG,sCAAsC,mDAAmB,CAAC,+CAAM,EAAE,kFAAQ;AAC7E;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH,CAAC;AACD,IAAI,IAAqC;AACzC;AACA;AACe,sEAAO,E;;;;;;;;;;;;ACpFtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACG;AACpC;AACL;AACQ;AACK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,+DAAiB;AACvC,sBAAsB,mDAAmB;AACzC,eAAe,iDAAU,UAAU,yFAAe,GAAG;AACrD,WAAW,wFAAa,CAAC,wFAAa,GAAG;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACe,mEAAI,E;;;;;;;;;;;;AClCnB;AAAA;AAAA;AAAA;AAA+B;AACL;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mDAAmB;AACzC;AACA,GAAG;AACH;AACA;AACA;AACA,wBAAwB,mDAAmB,CAAC,6CAAI;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACe,oEAAK,E;;;;;;;;;;;;AC3BpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACG;AACM;AACR;AACd;AAC3B;AACgC;AACpB;AACA;AACV;AACC;AACJ;AACA;AACE;AACQ;AACA;AACI;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,gDAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAAY;AAC/B,qBAAqB,4CAAY;AACjC,kBAAkB,6CAAa;AAC/B;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,kBAAkB,6CAAa;AAC/B;AACA,GAAG;AACH,kBAAkB,6CAAa;AAC/B;AACA,GAAG;;AAEH;AACA,mBAAmB,6CAAa;AAChC;AACA,GAAG;;AAEH;AACA,mBAAmB,6CAAa;AAChC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,iBAAiB,6CAAa;AAC9B,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kBAAkB,iFAAO,sCAAsC,oDAAoB;AACnF;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;;AAEH;AACA,mBAAmB,iEAAS;AAC5B,kBAAkB,wFAAc;AAChC;AACA;;AAEA;AACA,wBAAwB,+EAAc;AACtC;AACA,KAAK;AACL,uBAAuB,wFAAc;AACrC;AACA;AACA,kBAAkB,6CAAa;AAC/B;AACA,qBAAqB,wFAAc;AACnC;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,4FAAkB;;AAEvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA,qBAAqB,4CAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4FAAkB;AAC5C;AACA,KAAK;;AAEL;AACA,qBAAqB,kEAAO;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kEAAO;AACX;AACA;AACA,iBAAiB,+DAAO;AACxB,gBAAgB,wFAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,4BAA4B,4FAAkB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,8CAAc;AACtC,uBAAuB,wFAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,+CAAe;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,6BAA6B,6CAAa;AAC1C;AACA,UAAU,IAAqC;AAC/C,QAAQ,kEAAO;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,+CAAe;AACjB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,0BAA0B,6CAAa;AACvC,WAAW,4FAAkB;AAC7B;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,uBAAuB,6CAAa;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,wFAAc;AACpC;AACA;;AAEA;AACA,EAAE,yDAAyB;AAC3B;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE,+CAAe;AACjB;AACA;AACA;AACA,GAAG;;AAEH;AACA,gBAAgB,6CAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,GAAG;;AAEH;AACA,sBAAsB,mDAAmB,CAAC,iDAAa;AACvD;AACA,GAAG,eAAe,mDAAmB;AACrC;AACA,eAAe,iDAAG,uBAAuB,yFAAe,CAAC,yFAAe,CAAC,yFAAe,CAAC,yFAAe,GAAG;AAC3G;AACA;AACA,GAAG,eAAe,mDAAmB;AACrC,eAAe,iDAAG;AAClB,WAAW,wFAAa,CAAC,wFAAa,GAAG;AACzC,GAAG,gBAAgB,mDAAmB,CAAC,gDAAM;AAC7C;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB,mDAAmB,CAAC,+CAAK;AAC5C;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB,mDAAmB,CAAC,iDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB,mDAAmB,CAAC,+CAAK;AAC5C;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,IAAI,IAAqC;AACzC;AACA;AACe,qEAAM,E;;;;;;;;;;;;ACjbrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwE;AACH;AACjC;AACL;AACQ;AACK;AAC5C;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,wFAAa,CAAC,wFAAa,GAAG,EAAE,+DAAiB;AACrE;AACA,kBAAkB,wFAAa,CAAC,wFAAa,GAAG;AAChD;AACA,sBAAsB,mDAAmB;AACzC,eAAe,iDAAU,eAAe,yFAAe,GAAG;AAC1D;AACA,GAAG;AACH;AACe,kEAAG,E;;;;;;;;;;;;AC/BlB;AAAA;AAAA;AAAA;AAAA;AAA+B;AACQ;AACf;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA,iBAAiB,6CAAa;AAC9B;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,mDAAmB;AACzC;AACA,GAAG;AACH,wBAAwB,mDAAmB,CAAC,4CAAG;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACe,oEAAK,E;;;;;;;;;;;;AC3CpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACG;AAC3C;AACE;AACQ;AACH;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAS;AAC7B,kBAAkB,uDAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAG,iBAAiB,yFAAe,CAAC,yFAAe,GAAG;AACtF,sBAAsB,mDAAmB;AACzC;AACA,WAAW,wFAAa,CAAC,wFAAa,GAAG;AACzC;AACA;AACA,GAAG;AACH;AACe,oEAAK,E;;;;;;;;;;;;AC3DpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqE;AACxC;AACE;AACQ;AACJ;AACP;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAgB,CAAC,gDAAa;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,6CAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,qEAAqE,mDAAmB,CAAC,8CAAK;AAC9F;AACA;AACA;AACA;AACA,gBAAgB,iDAAG;AACnB;AACA,GAAG;AACH,sBAAsB,mDAAmB,CAAC,8CAAc;AACxD;AACA;AACA,wBAAwB,mDAAmB,CAAC,8CAAK;AACjD;AACA;AACA,aAAa,wFAAa,CAAC,wFAAa,GAAG,EAAE,sDAAQ;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACe,qEAAM,E;;;;;;;;;;;;ACvErB;AAAA;AAAA;AAA+B;AAC/B,iCAAiC,mDAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,CAAC;AACc,4EAAa,E;;;;;;;;;;;;ACb5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8E;AACR;AACnC;AACJ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAAc;AACtC,uBAAuB,wFAAc;AACrC;AACA;AACA,yBAAyB,8CAAc;AACvC,uBAAuB,wFAAc;AACrC;AACA;AACA,yBAAyB,8CAAc;AACvC,uBAAuB,wFAAc;AACrC;AACA;AACA,yBAAyB,8CAAc;AACvC,uBAAuB,wFAAc;AACrC;AACA;AACA,0BAA0B,4CAAY;AACtC,wBAAwB,4CAAY;AACpC,EAAE,qDAAqB;AACvB;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE,+CAAe;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAQ;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;;AAEA;AACA,wBAAwB,4FAAkB;AAC1C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,6CAAa;AAClC,uBAAuB,4FAAkB;AACzC;AACA,KAAK;AACL,uBAAuB,4FAAkB;AACzC;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACe,sEAAO,E;;;;;;;;;;;;ACrKtB;AAAA;AAAA;AAAA;AAAA;AAA8E;AAC/C;;AAE/B;;AAEA;;AAEA;;AAEe;AACf,yBAAyB,iDAAiB;AAC1C;AACA,GAAG;AACH,wBAAwB,iDAAiB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,iDAAiB;AACrC;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,4FAAkB;AAC5C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC1NA;AAAA;AAA8B;AACf,8GAAM,E;;;;;;;;;;;;ACDrB;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,sEAAO,E;;;;;;;;;;;;ACzhBtB;AAAA;AAAA;AAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACe;AACf;AACA;AACA,cAAc,iFAAO;AACrB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAA+B;AAChB;AACf,cAAc,4CAAY;AAC1B;AACA,eAAe,iDAAiB;AAChC;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACU;;AAEzC;AACA;AACA;AACA,8BAA8B,KAA+B,IAAI,8DAAS,KAAK,qDAAqB,GAAG,+CAAe;AACtH;AACA,sBAAsB,4CAAY;AAClC;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACe,8EAAe,E;;;;;;;;;;;;AC5B9B;AAAA;AAAA;AAAA;AAA+B;AAChB;AACf,iBAAiB,4CAAY,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsE;AACpC;AACwB;AACxB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACe;AACf,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,yDAAQ;AAC1B;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,iBAAiB,wFAAc;AAC/B;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,yDAAQ;AAC3B,mBAAmB,yDAAQ;AAC3B,iBAAiB,wFAAc;AAC/B;AACA;AACA,EAAE,8EAAqB;AACvB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE,8EAAqB;AACvB;AACA;AACA;AACA,GAAG;;AAEH;AACA,sBAAsB,yDAAQ;AAC9B;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AAAA;AAAsE;AACvC;AAC/B;AACA;AACA;AACA;AACA;AACe;AACf,mBAAmB,4CAAY;AAC/B,wBAAwB,8CAAc;AACtC,uBAAuB,wFAAc;AACrC;AACA;AACA,EAAE,+CAAe;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuD;AACY;AACD;AACrB;AACA;;;;;;;;;;;;;ACJ7C;AAAA;AAAA;AAAwD;AACxB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iFAAO,oBAAoB,iFAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACe,sEAAO,E;;;;;;;;;;;;ACtDtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACjB;AACO;AACR;AACM;AACrC;AACP;AACA;AACA,GAAG,UAAU,iFAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,wEAAwE,eAAe;AACvF;AACA;AACA,SAAS,8DAAO;AAChB;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,uDAAM;;AAEnB;AACA,gKAAgK,mDAAU;AAC1K;AACA;;AAEA;AACA,mNAAmN,mDAAU;AAC7N;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAc,WAAW,iEAAU;AACzD;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACtFA;AAAA;AAAe;AACf;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACa;AACS;AACpB;AAClC;AACxB;AACA;AACA;AACA;AACA,eAAe,kFAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY,4FAAkB;AAC9B,GAAG;AACH,YAAY,wFAAa,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACe;AACf;AACA;AACA,mEAAmE,oDAAG;AACtE;AACA;AACA;AACA;AACA;AACA,SAAS,iFAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG;AACrB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAG;AAC/B;AACA;AACA;AACA,WAAW,0BAA0B,iFAAO;AAC5C;AACA;AACA;AACA;AACA,oCAAoC,4FAAkB;AACtD,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACjFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACO;AACP,MAAM,KAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,cAAc;AAC5B;AACP,MAAM,KAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,cAAc;AACzB;AACP;AACA;;AAEA,kBAAkB,cAAc;AACzB;AACP;AACA;AACA;AACA;AACA;AACe,0EAAW,E;;;;;;;;;;;;ACnE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,4CAAO;AAC3B,cAAc,mBAAO,CAAC,4DAAe;AACrC,gBAAgB,mBAAO,CAAC,oDAAW;AACnC,cAAc,mBAAO,CAAC,8DAAmB;;AAEzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK,EAAE;;AAEP,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;;AAE/B,iBAAiB;;AAEjB,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+BAA+B;;AAE/B,iCAAiC;AACjC,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,mCAAmC,EAAE;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA,eAAe;AACf;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;;AAEA,2BAA2B;AAC3B;;AAEA,gBAAgB;AAChB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,yBAAyB;AACzB;AACA,SAAS;AACT,yBAAyB;AACzB;AACA,SAAS;AACT,kCAAkC;AAClC;AACA,SAAS;AACT,4BAA4B;AAC5B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D;;AAE1D;AACA;;AAEA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG,EAAE;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA,iEAAiE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA,OAAO;AACP;AACA,8BAA8B;AAC9B;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB;AACnB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA,4BAA4B;AAC5B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAgC,KAAK;AAC3C;AACA;AACA,MAAM,gCAAgC,KAAK;AAC3C;AACA,4DAA4D;AAC5D,MAAM,gCAAgC,KAAK;AAC3C;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4NAA4N;AAC5N;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4EAA4E,YAAY;AACxF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2HAA2H,6BAA6B;AACxJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kFAAkF;AAClF;;AAEA;AACA;;AAEA;AACA;AACA,OAAO,0CAA0C;;;AAGjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+FAA+F;AAC/F;;AAEA;AACA;AACA;AACA,OAAO,0CAA0C;;;AAGjD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6EAA6E;;AAE7E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sJAAsJ,iBAAiB;AACvK,OAAO;AACP,sJAAsJ,iBAAiB,wDAAwD,mBAAmB,gBAAgB,8BAA8B;AAChS;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA,KAAK;;;AAGL;AACA,oGAAoG,GAAG;;AAEvG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;;AAEA;AACA;AACA;AACA,sEAAsE;;AAEtE;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,UAAU;AACtB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C;AAC1C;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;;AAEA,qCAAqC;AACrC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA,OAAO;;;AAGP,uEAAuE;;AAEvE;AACA,8DAA8D;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,KAAK;AAChB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,IAAI;;AAEJ;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA,KAAK;AACL;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sCAAsC;;AAEtC,8BAA8B;AAC9B;;AAEA;AACA;AACA,uBAAuB;;AAEvB;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA,OAAO;AACP;;AAEA;AACA,yEAAyE;AACzE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;;AAEA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,4CAA4C;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,yZAAyZ;;AAEzZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA,sEAAsE;AACtE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yDAAyD;;AAEzD,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA,GAAG;AACH;;;AAGA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;AAGA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8GAA8G;;AAE9G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;;AAEA;;AAEA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,KAAK;;AAEL;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA,iDAAiD;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA,+EAA+E;AAC/E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;;;AAGA;AACA;AACA,CAAC;;;AAGD;AACA;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,OAAO;AAClB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,WAAW;AACtB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,OAAO;AAClB;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,gTAAgT;AAChT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA,uEAAuE;AACvE,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+EAA+E;AAC/E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yGAAyG;AACzG;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;;AAG1B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA,oCAAoC;;;AAGpC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;;AAEA;;AAEA,yBAAyB,OAAO;AAChC;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,wEAAwE;AACxE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,iIAAiI,mBAAmB,gBAAgB,8BAA8B;AAClM,KAAK;AACL;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,oGAAoG,kCAAkC;AAC3I;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD;;AAEA;;AAEA;;AAEA;AACA;AACA,mDAAmD;AACnD;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK,2EAA2E,oGAAoG,kCAAkC;AACtN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK,oGAAoG;AACzG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE;;AAElE,8FAA8F;AAC9F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C;AAC/C;;AAEA;;AAEA;;AAEA;AACA,+CAA+C;AAC/C;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,wBAAwB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA,+EAA+E;AAC/E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA,aAAa;;;AAGb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,0vBAA0vB;;AAE1vB;AACA;AACA;AACA,oCAAoC;;AAEpC,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,cAAc;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA,CAAC;AACD;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;;AAGA,yEAAyE;AACzE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,0HAA0H;AAC1H;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA,mEAAmE;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;;AAGD,0DAA0D;;AAE1D,oDAAoD;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA,0HAA0H;AAC1H;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D;AAC9D,qDAAqD;AACrD,2DAA2D;AAC3D,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;;AAErD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA8C;;AAE9C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,8DAA8D;;AAE9D,2DAA2D;AAC3D;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD,yDAAyD;AAC5G,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;;;AAGlC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;;AAGT,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C;;AAE5C;;AAEA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA,KAAK;AACL;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;;;AAGT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;;AAGH,kGAAkG;AAClG,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;;AAEtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6IAA6I;;AAE7I;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kEAAkE,4CAA4C;AAC9G;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,kIAAkI;AAClI;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,kIAAkI;AAClI;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8JAA8J,yCAAyC;AACvM;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,kDAAkD;AAC5D;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,6BAA6B;AACzC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;;AAGL,uEAAuE;;AAEvE,UAAU,6BAA6B;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;;AAGA;;AAEA;AACA;;AAEA;;AAEA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;;AAGL,uEAAuE;;AAEvE,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,MAAM;AACnD;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA,6DAA6D;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,4HAA4H;;AAE5H,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,mDAAmD;AACnD;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB,gCAAgC;AAChC;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,8BAA8B;AACrD;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,4CAA4C;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;;AAEjC;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,6CAA6C;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;;AAE5B,oCAAoC;;AAEpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;;AAGA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,2CAA2C;AAChD;;;AAGA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;;AAE3C,qCAAqC;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,GAAG;AACH;AACA;;AAEA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA,mCAAmC;;AAEnC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;AACA,GAAG,oCAAoC;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,6DAA6D;;AAE7D;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG,uBAAuB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,yKAAyK,0CAA0C;AACnN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;;AAEnC;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;;;AAGT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,yEAAyE;;AAEzE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA,KAAK;;;AAGL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;AAGA,gDAAgD;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,4CAA4C;AACnE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA,GAAG;;;AAGH,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL,wCAAwC;;AAExC;AACA,sCAAsC;AACtC;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gGAAgG;AAChG;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH,+FAA+F;AAC/F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yNAAyN,GAAG;;AAE5N;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;;AAGA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,mHAAmH;AACnH;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;;AAGA;AACA,aAAa;AACb;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D;;AAE5D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA,8CAA8C;AAC9C;AACA;;AAEA,qHAAqH;;AAErH,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;;;AAGb;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;;AAGA;AACA;AACA;;AAEA,qEAAqE;;AAErE,gEAAgE;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;;AAEX,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA,sFAAsF;;AAEtF;AACA;AACA,mBAAmB;;;AAGnB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA,+DAA+D;;AAE/D;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,uEAAuE;;AAEvE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,gHAAgH;AAChH;AACA;AACA;;AAEA,wCAAwC;AACxC,KAAK,MAAM,EAKN;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA,+CAA+C;;AAE/C,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,qHAAqH;;AAErH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,4DAA4D;AAC5D;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;;AAGA,sEAAsE;;AAEtE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA,KAAK,kCAAkC;AACvC;;;AAGA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,yEAAyE;;AAEzE;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb,yNAAyN,qCAAqC,wFAAwF,2BAA2B,qBAAqB,QAAQ,YAAY;AAC1Z,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,4IAA4I;AACnJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,qDAAqD;;AAErD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA,4CAA4C;AAC5C;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,+BAA+B;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,+BAA+B;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA,mCAAmC;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;;AAEP,KAAK;AACL;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA,KAAK;AACL,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA,uCAAuC;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,iCAAiC;;AAEjC,8BAA8B;;AAE9B,0BAA0B;;AAE1B,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;;AAErD,kDAAkD;;AAElD,wCAAwC;AACxC;AACA;AACA;;AAEA,8CAA8C;AAC9C;;AAEA,6CAA6C;;AAE7C,6CAA6C;;AAE7C;AACA,mCAAmC;AACnC;;AAEA;AACA,+BAA+B;AAC/B;;AAEA,kDAAkD;AAClD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;AAGA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;;AAGL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD,QAAQ;AACR;AACA;AACA;;;AAGA;AACA,+CAA+C;AAC/C;;AAEA,+CAA+C;;AAE/C,4GAA4G;;AAE5G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA,2FAA2F;;AAE3F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mEAAmE;;;AAGnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;;AAEA,gCAAgC;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;;AAEA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,CAAC;;AAED;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA,GAAG;;;AAGH;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,wEAAwE;;AAExE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;;;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uEAAuE;;AAEvE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL,gCAAgC;;AAEhC;AACA,GAAG,gCAAgC;;;AAGnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,4CAA4C;AAC/C;;;AAGA,2BAA2B;AAC3B;;AAEA;AACA,yCAAyC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kDAAkD;;AAElD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,6BAA6B;;;AAGlC;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL,yCAAyC;AACzC;AACA;AACA;;AAEA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,4BAA4B;AACnD;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,GAAG;;;AAGH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA,yCAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;;AAEA;AACA,2CAA2C;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;AACL;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,mCAAmC;AACnC;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO,4CAA4C;AACnD;;;AAGA;AACA,6BAA6B;AAC7B;AACA;;AAEA,wCAAwC;;AAExC;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G;;AAE9G;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,IAAI,kCAAkC,mCAAmC;AAC1F,4DAA4D,cAAc,IAAI,gBAAgB,mCAAmC;AACjI,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iMAAiM,oDAAoD,EAAE;AACvP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8LAA8L,oDAAoD,EAAE;AACpP,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,gFAAgF;;AAEhF,0CAA0C;AAC1C;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL,6DAA6D;;AAE7D;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG,EAAE;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,+CAA+C;;AAE/C,uCAAuC;AACvC;;AAEA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;;AAErD,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2EAA2E;;AAE3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE;AACtE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,yEAAyE;AACzE;AACA;;AAEA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D;;AAE/D;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;;AAE/D;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,qBAAqB,wBAAwB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,OAAO;;AAEtE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mFAAmF;;AAEnF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iMAAiM,cAAc;AAC/M;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,EAAE;AACP;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,6EAA6E;;AAE7E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACrpzBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,IAAI,KAAqC,EAAE,EAK1C;AACD,mBAAmB,mBAAO,CAAC,6FAAgC;AAC3D;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,6EAA6E,8DAA8D;AAC3I;AACA;AACA;AACA;;AAEA;AAC+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI,GAAG,wDAAwD;AAC7E,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,+CAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAoD;AAC7E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA,aAAa,gBAAgB;AAC7B,uBAAuB,sCAAsC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,mDAAmB;AAC9B;AACA,OAAO,iCAAiC;AACxC;AACA;AACA;AACA;;AAEA;AACgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK;AACN;AACA,wBAAwB,8CAAe;AACvC,mBAAmB,4CAAa;AAChC,4BAA4B,8CAAe;AAC3C;AACA;AACA,GAAG;AACH;AACA,EAAE,+CAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AAME;AACF,iC;;;;;;;;;;;;AC5SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6H;AACqG;AAC3N;AACP;AACA;AACO;AACP;AACA;AAC0H;AAC5D;AACkB;AAChF;AACO,oBAAoB,yGAAwB;AAC5C,oBAAoB,yGAAwB;AAC5C,sBAAsB,yGAAwB;AAC9C,oBAAoB,yGAAwB;AAC5C,2BAA2B,yGAAwB;AACnD,yBAAyB,sHAAqC;AAC9D,yBAAyB,sHAAqC;AACY;AACJ;AACR;AACE;AACY;;;;;;;;;;;;;ACvBnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACA;AACiB;AACT;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AACtC,6CAA6C,SAAS,mDAAmB,CAAC,mDAAO;AACxF,IAAI,mEAAoB;AACxB,sEAAsE,oDAAM;AAC5E;AACA,CAAC,GAAG;AACJ;AACO;AACP,2CAA2C,SAAS,mDAAmB,CAAC,mDAAO;AAC/E,QAAQ,mEAAoB;AAC5B,0EAA0E,oDAAM;AAChF;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;AACA;AACO;AACP,sCAAsC,SAAS,mDAAmB,CAAC,mDAAO;AAC1E,QAAQ,mEAAoB;AAC5B,0EAA0E,oDAAM;AAChF;AACA;AACA;AACA;AACA;AACA,yCAAyC,8CAAc;AACvD,eAAe,mDAAmB;AAClC,KAAK,GAAG;AACR;AACA;AACA;;;;;;;;;;;;;ACtDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACA;AACQ;AACS;AAChD,+CAA+C,SAAS,mDAAmB,CAAC,mDAAO;AACnF,IAAI,mEAAoB;AACxB,mFAAmF,oDAAM;AACzF;AACA;AACA;AACA;AACA,qCAAqC,8CAAc;AACnD,WAAW,mDAAmB;AAC9B,CAAC,GAAG;AACJ;AACe,qFAAsB,EAAC;;;;;;;;;;;;;ACftC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACF;AAC6B;AAC5D;AACA;AACA;AACA;AACA,2BAA2B,8DAAqB,YAAY,8DAAqB;AACjC;AAChD;AACA;AACA;AACA;AACA,kBAAkB,mDAAmB;AACrC;AACO;AACA;AACQ;AACf,0BAA0B;AAC1B,qCAAqC,SAAS,mDAAmB;AACjE;AACA;AACA,YAAY,mEAAoB;AAChC;AACA,+BAA+B;AAC/B,gBAAgB,mDAAmB,mBAAmB,sDAAQ,GAAG,oBAAoB,8CAA8C;AACnI,KAAK,GAAG;AACR;AACA;AACA;AACA,oCAAoC,gDAAgB,wBAAwB,SAAS,mDAAmB,WAAW,sDAAQ,GAAG,UAAU,oBAAoB,IAAI,EAAE;AAClK;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAC0D;AAC3B;AACQ;AACS;AACQ;AACxD,oBAAoB,4DAAsB,IAAI,kDAAc;AAC5D;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,8DAA8D,oDAAM;AACpE,4DAA4D,oDAAM;AAClE;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAmB,CAAC,mDAAO;AAC3C,YAAY,mEAAoB;AAChC,oGAAoG,8CAAc;AAClH;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAmB,OAAO,kCAAK,EAAE,4DAAc;AACtE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,CAAC,+CAAe;AACF,+EAAgB,EAAC;;;;;;;;;;;;;AC/ChC;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAC+B;AACK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2DAAQ;AACvB,sFAAuB,EAAC;;;;;;;;;;;;;AC3BvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACoD;AACrB;AACS;AACuD;AACqB;AAC5D;AACG;AAC3D,oBAAoB,4DAAsB,IAAI,kDAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+EAAoB;AACrC,cAAc,sEAAuB;AACrC;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA,iBAAiB,oEAAiB;AAClC;AACA,eAAe,8CAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0EAA0E,oDAAM;AAChF;AACA,mBAAmB,iEAAc,CAAC,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,EAAE,0DAAmB,aAAa,mDAAmD;AACpJ,WAAW,sDAAQ,CAAC,sDAAQ,GAAG,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB;AACjC;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,sBAAsB,sEAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAoB;AAC5B,eAAe,mDAAmB,CAAC,oDAAQ,GAAG,yBAAyB;AACvE;AACA;AACA,gCAAgC,0DAAmB;AACnD;AACA,CAAC,CAAC,mDAAmB;AACN,2EAAY,EAAC;;;;;;;;;;;;;AClG5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AAC5C;AACA;AACA;AACA;AACA;AAC+B;AACQ;AACS;AACO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAmB,CAAC,mDAAO;AAC3C,YAAY,mEAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,sDAAQ,GAAG;AACjG;AACA;AACA;AACA;AACA,uBAAuB,mDAAmB;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAmB;AACY;AAClB,oFAAqB,EAAC;;;;;;;;;;;;;AC/JrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACQ;AACS;AACjC;AACf,eAAe,gDAAgB,CAAC,mDAAO;AACvC,IAAI,mEAAoB;AACxB;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACF;AACwB;AAC0B;AAC1E;AACP,IAAI,4EAAS;AACb;AACA;AACO,0BAA0B,sDAAQ,CAAC,sDAAQ,GAAG,EAAE,kEAAwB,IAAI,gBAAgB,8CAAc,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kCAAkC,8CAAc;AAChD;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,0FAA+B;AAC1D;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,cAAc,mBAAO,CAAC,4DAAe;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;;AAEA;AACA,mBAAmB;;AAEnB;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK,EAAE;;AAEP,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8MAA8M;;AAE9M;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,aAAa,WAAW;AACxB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,yBAAyB;;AAEzB,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,UAAU;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA,mDAAmD;;AAEnD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,cAAc;AACzB,WAAW,EAAE;AACb,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;;AAEP;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;;AAEf,wBAAwB,iBAAiB;;;AAGzC;AACA,wBAAwB;;AAExB,2BAA2B;AAC3B;AACA;;AAEA,+BAA+B;;AAE/B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;;AAEvB;;AAEA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,sIAAsI,yCAAyC;AAC/K;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,iBAAiB;AAC5B,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,OAAO;AACnB;;;AAGA;AACA;AACA;AACA,QAAQ;AACR,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,iBAAiB;AAC5B,WAAW,EAAE;AACb;AACA;AACA;AACA,uCAAuC;AACvC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,aAAa;AACzB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE;;AAEP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,yCAAyC;AACzC;;AAEA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,mCAAmC;AACnC;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,yBAAyB;AACzB;AACA,SAAS;AACT,yBAAyB;AACzB;AACA,SAAS;AACT,kCAAkC;AAClC;AACA,SAAS;AACT,4BAA4B;AAC5B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D;;AAE1D;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,0HAA0H;AAC1H;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA,mEAAmE;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,EAAE;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0DAA0D;AAC1D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,EAAE;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,2CAA2C;;AAE3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;;;AAGA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qDAAqD;AACrD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC5xEa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,iFAA4B;AACvD;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,0BAA0B;;AAE1B;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AC1VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8BAA8B;;AAE9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC;;AAEnC,oCAAoC;;AAEpC;AACA;AACA,iCAAiC;;AAEjC,8CAA8C;;AAE9C;AACA,oBAAoB;;AAEpB,sBAAsB;AACtB;AACA,0CAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;;;AAGP;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACroBa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,6FAAgC;AAC3D;;;;;;;;;;;;;ACNa;;AAEb,IAAI,KAAqC,EAAE,EAE1C;AACD,mBAAmB,mBAAO,CAAC,6GAAwC;AACnE;;;;;;;;;;;;ACNA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK2B;AACjC,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,wHAAwH,mBAAmB,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,0BAA0B,EAAE;AACvI,0GAA0G,yBAAyB,EAAE;AACrI,wGAAwG,uBAAuB,EAAE;AACjI,+GAA+G,8BAA8B,EAAE;AAC/I,iHAAiH,4CAA4C,EAAE;AAC/J,wHAAwH,mDAAmD,EAAE;AAC7K,+GAA+G,8BAA8B,EAAE;AAC/I,sHAAsH,qCAAqC,EAAE;AAC7J,6GAA6G,wCAAwC,EAAE;AACvJ,gHAAgH,2CAA2C,EAAE;AAC7J,+GAA+G,0CAA0C,EAAE;AAC3J,kHAAkH,6CAA6C,EAAE;AACjK,2GAA2G,sCAAsC,EAAE;AACnJ,6GAA6G,wCAAwC,EAAE;AACvJ,0GAA0G,qCAAqC,EAAE;AACjJ,0GAA0G,qCAAqC,EAAE;AACjJ,6GAA6G,wCAAwC,EAAE;AACvJ,4GAA4G,uCAAuC,EAAE;AACrJ,+GAA+G,0CAA0C,EAAE;AAC3J,oGAAoG,mBAAmB,EAAE;AACzH,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,gEAAgE,EAAE,GAAG,EAAE,iCAAiC,2CAA2C,EAAE,EAAE,EAAE,eAAe;;AAE/d,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;;AAG/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA,CAAC,E;;;;;;;;;;;;AC3xBY;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,2BAA2B;AACtC,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,mBAAmB;AAChC;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;;AAEA;AACA,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB;;AAEA;AACA,aAAa,OAAO;AACpB,cAAc,sBAAsB,iDAAiD;AACrF;AACA;AACA,cAAc,2BAA2B;AACzC,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B,aAAa;AACb;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG,oEAAoE;AACvE,8BAA8B;AAC9B;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,4BAA4B;AAC5B,yDAAyD;AACzD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA,EAAE;AACF;AACA;;;AAGA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEwD;AACxD;;;;;;;;;;;;;AC5eA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAC8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,GAAG;AAChC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB,mBAAmB;AACvD;AACA,kBAAkB;AAClB,CAAC;;AAED;;AAEA,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,8CAA8C;AAC9C,kCAAkC;AAClC,oCAAoC;AACpC,kCAAkC;AAClC,8BAA8B;AAC9B,gCAAgC;AAChC,8BAA8B;AAC9B,gCAAgC;AAChC,oCAAoC;AACpC,wCAAwC;AACxC,8CAA8C;AAC9C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB;AAClB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP,yBAAyB,iBAAiB;AAC1C;AACA;AACA,8EAA8E;AAC9E;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,GAAG,6BAA6B;AAChC,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE;;AAEnE;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,wEAAwE;AACzE;;AAEA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA,uDAAuD,kBAAkB,8DAA8D;AACvI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;;AAGL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,8BAA8B,mEAAY,4CAA4C;AACtF;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D,oBAAoB;AACjF;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,GAAG;AACH;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,4CAA4C;AAC5C;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,GAAG;AACH,mCAAmC;AACnC;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA,yGAAyG;;AAEzG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA,sEAAsE;AACtE;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;AAC0G;AAC/H;;;;;;;;;;;;;ACzwEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,8EAA8E;AACvG;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEA;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClOA;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAMN;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5XD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AAC4B;AAC3D;;AAEA;AAC4C;AACM;AACN;AACE;AA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","file":"app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"svg4everybody\":\"svg4everybody\"}[chunkId]||chunkId) + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/redesign/js/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/app.js\");\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (isNaN(number) || SameValue(number, -0)) {\n return 0;\n }\n if (isFinite(number)) {\n return number;\n }\n var integer = Math.floor(Math.abs(number));\n if (number < 0) {\n integer = -integer;\n }\n if (SameValue(integer, -0)) {\n return 0;\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!isFinite(time)) {\n return NaN;\n }\n if (Math.abs(time) > 8.64 * 1e16) {\n return NaN;\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return (365 * (y - 1970) +\n Math.floor((y - 1969) / 4) -\n Math.floor((y - 1901) / 100) +\n Math.floor((y - 1601) / 400));\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return MS_PER_DAY * DayFromYear(y);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n var min = Math.ceil(t / MS_PER_DAY / 366);\n var y = min;\n while (TimeFromYear(y) <= t) {\n y++;\n }\n return y - 1;\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (availableLocales.has(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var minimizedAvailableLocaleMap = {};\n var minimizedAvailableLocales = new Set();\n availableLocales.forEach(function (locale) {\n var minimizedLocale = new Intl.Locale(locale)\n .minimize()\n .toString();\n minimizedAvailableLocaleMap[minimizedLocale] = locale;\n minimizedAvailableLocales.add(minimizedLocale);\n });\n var foundLocale;\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var l = requestedLocales_1[_i];\n if (foundLocale) {\n break;\n }\n var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n if (availableLocales.has(noExtensionLocale)) {\n foundLocale = noExtensionLocale;\n break;\n }\n if (minimizedAvailableLocales.has(noExtensionLocale)) {\n foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];\n break;\n }\n var locale = new Intl.Locale(noExtensionLocale);\n var maximizedRequestedLocale = locale.maximize().toString();\n var minimizedRequestedLocale = locale.minimize().toString();\n // Check minimized locale\n if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {\n foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];\n break;\n }\n // Lookup algo on maximized locale\n foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);\n }\n return {\n locale: foundLocale || getDefaultLocale(),\n };\n}\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = Object.keys(tzData).reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '../utils';\nimport { DATE_TIME_PROPS, additionPenalty, removalPenalty, longMorePenalty, shortMorePenalty, shortLessPenalty, longLessPenalty, } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-basicformatmatcher\n * @param options\n * @param formats\n */\nexport function BasicFormatMatcher(options, formats) {\n var bestScore = -Infinity;\n var bestFormat = formats[0];\n invariant(Array.isArray(formats), 'formats should be a list of things');\n for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {\n var format = formats_1[_i];\n var score = 0;\n for (var _a = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _a < DATE_TIME_PROPS_1.length; _a++) {\n var prop = DATE_TIME_PROPS_1[_a];\n var optionsProp = options[prop];\n var formatProp = format[prop];\n if (optionsProp === undefined && formatProp !== undefined) {\n score -= additionPenalty;\n }\n else if (optionsProp !== undefined && formatProp === undefined) {\n score -= removalPenalty;\n }\n else if (optionsProp !== formatProp) {\n var values = ['2-digit', 'numeric', 'narrow', 'short', 'long'];\n var optionsPropIndex = values.indexOf(optionsProp);\n var formatPropIndex = values.indexOf(formatProp);\n var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));\n if (delta === 2) {\n score -= longMorePenalty;\n }\n else if (delta === 1) {\n score -= shortMorePenalty;\n }\n else if (delta === -1) {\n score -= shortLessPenalty;\n }\n else if (delta === -2) {\n score -= longLessPenalty;\n }\n }\n }\n if (score > bestScore) {\n bestScore = score;\n bestFormat = format;\n }\n }\n return __assign({}, bestFormat);\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '../utils';\nimport { DATE_TIME_PROPS, removalPenalty, additionPenalty, differentNumericTypePenalty, longMorePenalty, shortMorePenalty, shortLessPenalty, longLessPenalty, } from './utils';\nimport { processDateTimePattern } from './skeleton';\nfunction isNumericType(t) {\n return t === 'numeric' || t === '2-digit';\n}\n/**\n * Credit: https://github.com/andyearnshaw/Intl.js/blob/0958dc1ad8153f1056653ea22b8208f0df289a4e/src/12.datetimeformat.js#L611\n * with some modifications\n * @param options\n * @param format\n */\nexport function bestFitFormatMatcherScore(options, format) {\n var score = 0;\n if (options.hour12 && !format.hour12) {\n score -= removalPenalty;\n }\n else if (!options.hour12 && format.hour12) {\n score -= additionPenalty;\n }\n for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {\n var prop = DATE_TIME_PROPS_1[_i];\n var optionsProp = options[prop];\n var formatProp = format[prop];\n if (optionsProp === undefined && formatProp !== undefined) {\n score -= additionPenalty;\n }\n else if (optionsProp !== undefined && formatProp === undefined) {\n score -= removalPenalty;\n }\n else if (optionsProp !== formatProp) {\n // extra penalty for numeric vs non-numeric\n if (isNumericType(optionsProp) !==\n isNumericType(formatProp)) {\n score -= differentNumericTypePenalty;\n }\n else {\n var values = ['2-digit', 'numeric', 'narrow', 'short', 'long'];\n var optionsPropIndex = values.indexOf(optionsProp);\n var formatPropIndex = values.indexOf(formatProp);\n var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));\n if (delta === 2) {\n score -= longMorePenalty;\n }\n else if (delta === 1) {\n score -= shortMorePenalty;\n }\n else if (delta === -1) {\n score -= shortLessPenalty;\n }\n else if (delta === -2) {\n score -= longLessPenalty;\n }\n }\n }\n }\n return score;\n}\n/**\n * https://tc39.es/ecma402/#sec-bestfitformatmatcher\n * Just alias to basic for now\n * @param options\n * @param formats\n * @param implDetails Implementation details\n */\nexport function BestFitFormatMatcher(options, formats) {\n var bestScore = -Infinity;\n var bestFormat = formats[0];\n invariant(Array.isArray(formats), 'formats should be a list of things');\n for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {\n var format = formats_1[_i];\n var score = bestFitFormatMatcherScore(options, format);\n if (score > bestScore) {\n bestScore = score;\n bestFormat = format;\n }\n }\n var skeletonFormat = __assign({}, bestFormat);\n var patternFormat = { rawPattern: bestFormat.rawPattern };\n processDateTimePattern(bestFormat.rawPattern, patternFormat);\n // Kinda following https://github.com/unicode-org/icu/blob/dd50e38f459d84e9bf1b0c618be8483d318458ad/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java\n // Method adjustFieldTypes\n for (var prop in skeletonFormat) {\n var skeletonValue = skeletonFormat[prop];\n var patternValue = patternFormat[prop];\n var requestedValue = options[prop];\n // Don't mess with minute/second or we can get in the situation of\n // 7:0:0 which is weird\n if (prop === 'minute' || prop === 'second') {\n continue;\n }\n // Nothing to do here\n if (!requestedValue) {\n continue;\n }\n // https://unicode.org/reports/tr35/tr35-dates.html#Matching_Skeletons\n // Looks like we should not convert numeric to alphabetic but the other way\n // around is ok\n if (isNumericType(patternValue) &&\n !isNumericType(requestedValue)) {\n continue;\n }\n if (skeletonValue === requestedValue) {\n continue;\n }\n patternFormat[prop] = requestedValue;\n }\n // Copy those over\n patternFormat.pattern = skeletonFormat.pattern;\n patternFormat.pattern12 = skeletonFormat.pattern12;\n patternFormat.skeleton = skeletonFormat.skeleton;\n patternFormat.rangePatterns = skeletonFormat.rangePatterns;\n patternFormat.rangePatterns12 = skeletonFormat.rangePatterns12;\n return patternFormat;\n}\n","import { invariant } from '../utils';\nexport function DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData) {\n var dateFormat, timeFormat;\n if (timeStyle !== undefined) {\n invariant(timeStyle === 'full' ||\n timeStyle === 'long' ||\n timeStyle === 'medium' ||\n timeStyle === 'short', 'invalid timeStyle');\n timeFormat = dataLocaleData.timeFormat[timeStyle];\n }\n if (dateStyle !== undefined) {\n invariant(dateStyle === 'full' ||\n dateStyle === 'long' ||\n dateStyle === 'medium' ||\n dateStyle === 'short', 'invalid dateStyle');\n dateFormat = dataLocaleData.dateFormat[dateStyle];\n }\n if (dateStyle !== undefined && timeStyle !== undefined) {\n var format = {};\n for (var field in dateFormat) {\n if (field !== 'pattern') {\n // @ts-ignore\n format[field] = dateFormat[field];\n }\n }\n for (var field in timeFormat) {\n if (field !== 'pattern' && field !== 'pattern12') {\n // @ts-ignore\n format[field] = timeFormat[field];\n }\n }\n var connector = dataLocaleData.dateTimeFormat[dateStyle];\n var pattern = connector\n .replace('{0}', timeFormat.pattern)\n .replace('{1}', dateFormat.pattern);\n format.pattern = pattern;\n if ('pattern12' in timeFormat) {\n var pattern12 = connector\n .replace('{0}', timeFormat.pattern12)\n .replace('{1}', dateFormat.pattern);\n format.pattern12 = pattern12;\n }\n return format;\n }\n if (timeStyle !== undefined) {\n return timeFormat;\n }\n invariant(dateStyle !== undefined, 'dateStyle should not be undefined');\n return dateFormat;\n}\n","import { PartitionDateTimePattern } from './PartitionDateTimePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatdatetime\n * @param dtf DateTimeFormat\n * @param x\n */\nexport function FormatDateTime(dtf, x, implDetails) {\n var parts = PartitionDateTimePattern(dtf, x, implDetails);\n var result = '';\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result += part.value;\n }\n return result;\n}\n","import { DATE_TIME_PROPS } from './utils';\nimport { ToLocalTime } from './ToLocalTime';\nimport { TimeClip } from '../262';\nfunction pad(n) {\n if (n < 10) {\n return \"0\" + n;\n }\n return String(n);\n}\nfunction offsetToGmtString(gmtFormat, hourFormat, offsetInMs, style) {\n var offsetInMinutes = Math.floor(offsetInMs / 60000);\n var mins = Math.abs(offsetInMinutes) % 60;\n var hours = Math.floor(Math.abs(offsetInMinutes) / 60);\n var _a = hourFormat.split(';'), positivePattern = _a[0], negativePattern = _a[1];\n var offsetStr = '';\n var pattern = offsetInMs < 0 ? negativePattern : positivePattern;\n if (style === 'long') {\n offsetStr = pattern\n .replace('HH', pad(hours))\n .replace('H', String(hours))\n .replace('mm', pad(mins))\n .replace('m', String(mins));\n }\n else if (mins || hours) {\n if (!mins) {\n pattern = pattern.replace(/:?m+/, '');\n }\n offsetStr = pattern\n .replace(/H+/, String(hours))\n .replace(/m+/, String(mins));\n }\n return gmtFormat.replace('{0}', offsetStr);\n}\n/**\n * https://tc39.es/ecma402/#sec-partitiondatetimepattern\n * @param dtf\n * @param x\n */\nexport function FormatDateTimePattern(dtf, patternParts, x, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, getDefaultTimeZone = _a.getDefaultTimeZone, tzData = _a.tzData;\n x = TimeClip(x);\n /** IMPL START */\n var internalSlots = getInternalSlots(dtf);\n var dataLocale = internalSlots.dataLocale;\n var dataLocaleData = localeData[dataLocale];\n /** IMPL END */\n var locale = internalSlots.locale;\n var nfOptions = Object.create(null);\n nfOptions.useGrouping = false;\n var nf = new Intl.NumberFormat(locale, nfOptions);\n var nf2Options = Object.create(null);\n nf2Options.minimumIntegerDigits = 2;\n nf2Options.useGrouping = false;\n var nf2 = new Intl.NumberFormat(locale, nf2Options);\n var tm = ToLocalTime(x, \n // @ts-ignore\n internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });\n var result = [];\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var patternPart = patternParts_1[_i];\n var p = patternPart.type;\n if (p === 'literal') {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else if (DATE_TIME_PROPS.indexOf(p) > -1) {\n var fv = '';\n var f = internalSlots[p];\n // @ts-ignore\n var v = tm[p];\n if (p === 'year' && v <= 0) {\n v = 1 - v;\n }\n if (p === 'month') {\n v++;\n }\n var hourCycle = internalSlots.hourCycle;\n if (p === 'hour' && (hourCycle === 'h11' || hourCycle === 'h12')) {\n v = v % 12;\n if (v === 0 && hourCycle === 'h12') {\n v = 12;\n }\n }\n if (p === 'hour' && hourCycle === 'h24') {\n if (v === 0) {\n v = 24;\n }\n }\n if (f === 'numeric') {\n fv = nf.format(v);\n }\n else if (f === '2-digit') {\n fv = nf2.format(v);\n if (fv.length > 2) {\n fv = fv.slice(fv.length - 2, fv.length);\n }\n }\n else if (f === 'narrow' || f === 'short' || f === 'long') {\n if (p === 'era') {\n fv = dataLocaleData[p][f][v];\n }\n else if (p === 'timeZoneName') {\n var timeZoneName = dataLocaleData.timeZoneName, gmtFormat = dataLocaleData.gmtFormat, hourFormat = dataLocaleData.hourFormat;\n var timeZone = internalSlots.timeZone || getDefaultTimeZone();\n var timeZoneData = timeZoneName[timeZone];\n if (timeZoneData && timeZoneData[f]) {\n fv = timeZoneData[f][+tm.inDST];\n }\n else {\n // Fallback to gmtFormat\n fv = offsetToGmtString(gmtFormat, hourFormat, tm.timeZoneOffset, f);\n }\n }\n else if (p === 'month') {\n fv = dataLocaleData.month[f][v - 1];\n }\n else {\n fv = dataLocaleData[p][f][v];\n }\n }\n result.push({\n type: p,\n value: fv,\n });\n }\n else if (p === 'ampm') {\n var v = tm.hour;\n var fv = void 0;\n if (v > 11) {\n fv = dataLocaleData.pm;\n }\n else {\n fv = dataLocaleData.am;\n }\n result.push({\n type: 'dayPeriod',\n value: fv,\n });\n }\n else if (p === 'relatedYear') {\n var v = tm.relatedYear;\n // @ts-ignore\n var fv = nf.format(v);\n result.push({\n // @ts-ignore TODO: Fix TS type\n type: 'relatedYear',\n value: fv,\n });\n }\n else if (p === 'yearName') {\n var v = tm.yearName;\n // @ts-ignore\n var fv = nf.format(v);\n result.push({\n // @ts-ignore TODO: Fix TS type\n type: 'yearName',\n value: fv,\n });\n }\n }\n return result;\n}\n","import { PartitionDateTimeRangePattern } from './PartitionDateTimeRangePattern';\nexport function FormatDateTimeRange(dtf, x, y, implDetails) {\n var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);\n var result = '';\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result += part.value;\n }\n return result;\n}\n","import { PartitionDateTimeRangePattern } from './PartitionDateTimeRangePattern';\nexport function FormatDateTimeRangeToParts(dtf, x, y, implDetails) {\n var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);\n var result = new Array(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n source: part.source,\n });\n }\n return result;\n}\n","import { PartitionDateTimePattern } from './PartitionDateTimePattern';\nimport { ArrayCreate } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-formatdatetimetoparts\n *\n * @param dtf\n * @param x\n * @param implDetails\n */\nexport function FormatDateTimeToParts(dtf, x, implDetails) {\n var parts = PartitionDateTimePattern(dtf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { ToDateTimeOptions } from './ToDateTimeOptions';\nimport { GetOption } from '../GetOption';\nimport { ResolveLocale } from '../ResolveLocale';\nimport { IsValidTimeZoneName } from '../IsValidTimeZoneName';\nimport { CanonicalizeTimeZoneName } from '../CanonicalizeTimeZoneName';\nimport { BasicFormatMatcher } from './BasicFormatMatcher';\nimport { BestFitFormatMatcher } from './BestFitFormatMatcher';\nimport { invariant } from '../utils';\nimport { DATE_TIME_PROPS } from './utils';\nimport { DateTimeStyleFormat } from './DateTimeStyleFormat';\nfunction isTimeRelated(opt) {\n for (var _i = 0, _a = ['hour', 'minute', 'second']; _i < _a.length; _i++) {\n var prop = _a[_i];\n var value = opt[prop];\n if (value !== undefined) {\n return true;\n }\n }\n return false;\n}\nfunction resolveHourCycle(hc, hcDefault, hour12) {\n if (hc == null) {\n hc = hcDefault;\n }\n if (hour12 !== undefined) {\n if (hour12) {\n if (hcDefault === 'h11' || hcDefault === 'h23') {\n hc = 'h11';\n }\n else {\n hc = 'h12';\n }\n }\n else {\n invariant(!hour12, 'hour12 must not be set');\n if (hcDefault === 'h11' || hcDefault === 'h23') {\n hc = 'h23';\n }\n else {\n hc = 'h24';\n }\n }\n }\n return hc;\n}\nvar TYPE_REGEX = /^[a-z0-9]{3,8}$/i;\n/**\n * https://tc39.es/ecma402/#sec-initializedatetimeformat\n * @param dtf DateTimeFormat\n * @param locales locales\n * @param opts options\n */\nexport function InitializeDateTimeFormat(dtf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, availableLocales = _a.availableLocales, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getDefaultTimeZone = _a.getDefaultTimeZone, relevantExtensionKeys = _a.relevantExtensionKeys, tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = ToDateTimeOptions(opts, 'any', 'date');\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var calendar = GetOption(options, 'calendar', 'string', undefined, undefined);\n if (calendar !== undefined && !TYPE_REGEX.test(calendar)) {\n throw new RangeError('Malformed calendar');\n }\n var internalSlots = getInternalSlots(dtf);\n opt.ca = calendar;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined && !TYPE_REGEX.test(numberingSystem)) {\n throw new RangeError('Malformed numbering system');\n }\n opt.nu = numberingSystem;\n var hour12 = GetOption(options, 'hour12', 'boolean', undefined, undefined);\n var hourCycle = GetOption(options, 'hourCycle', 'string', ['h11', 'h12', 'h23', 'h24'], undefined);\n if (hour12 !== undefined) {\n // @ts-ignore\n hourCycle = null;\n }\n opt.hc = hourCycle;\n var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n internalSlots.locale = r.locale;\n calendar = r.ca;\n internalSlots.calendar = calendar;\n internalSlots.hourCycle = r.hc;\n internalSlots.numberingSystem = r.nu;\n var dataLocale = r.dataLocale;\n internalSlots.dataLocale = dataLocale;\n var timeZone = options.timeZone;\n if (timeZone !== undefined) {\n timeZone = String(timeZone);\n if (!IsValidTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks })) {\n throw new RangeError('Invalid timeZoneName');\n }\n timeZone = CanonicalizeTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks });\n }\n else {\n timeZone = getDefaultTimeZone();\n }\n internalSlots.timeZone = timeZone;\n opt = Object.create(null);\n opt.weekday = GetOption(options, 'weekday', 'string', ['narrow', 'short', 'long'], undefined);\n opt.era = GetOption(options, 'era', 'string', ['narrow', 'short', 'long'], undefined);\n opt.year = GetOption(options, 'year', 'string', ['2-digit', 'numeric'], undefined);\n opt.month = GetOption(options, 'month', 'string', ['2-digit', 'numeric', 'narrow', 'short', 'long'], undefined);\n opt.day = GetOption(options, 'day', 'string', ['2-digit', 'numeric'], undefined);\n opt.hour = GetOption(options, 'hour', 'string', ['2-digit', 'numeric'], undefined);\n opt.minute = GetOption(options, 'minute', 'string', ['2-digit', 'numeric'], undefined);\n opt.second = GetOption(options, 'second', 'string', ['2-digit', 'numeric'], undefined);\n opt.timeZoneName = GetOption(options, 'timeZoneName', 'string', ['short', 'long'], undefined);\n var dataLocaleData = localeData[dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \" + dataLocale);\n var formats = dataLocaleData.formats[calendar];\n // UNSPECCED: IMPLEMENTATION DETAILS\n if (!formats) {\n throw new RangeError(\"Calendar \\\"\" + calendar + \"\\\" is not supported. Try setting \\\"calendar\\\" to 1 of the following: \" + Object.keys(dataLocaleData.formats).join(', '));\n }\n matcher = GetOption(options, 'formatMatcher', 'string', ['basic', 'best fit'], 'best fit');\n var dateStyle = GetOption(options, 'dateStyle', 'string', ['full', 'long', 'medium', 'short'], undefined);\n internalSlots.dateStyle = dateStyle;\n var timeStyle = GetOption(options, 'timeStyle', 'string', ['full', 'long', 'medium', 'short'], undefined);\n internalSlots.timeStyle = timeStyle;\n var bestFormat;\n if (dateStyle === undefined && timeStyle === undefined) {\n if (matcher === 'basic') {\n bestFormat = BasicFormatMatcher(opt, formats);\n }\n else {\n // IMPL DETAILS START\n if (isTimeRelated(opt)) {\n var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);\n opt.hour12 = hc === 'h11' || hc === 'h12';\n }\n // IMPL DETAILS END\n bestFormat = BestFitFormatMatcher(opt, formats);\n }\n }\n else {\n for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {\n var prop = DATE_TIME_PROPS_1[_i];\n var p = opt[prop];\n if (p !== undefined) {\n throw new TypeError(\"Intl.DateTimeFormat can't set option \" + prop + \" when \" + (dateStyle ? 'dateStyle' : 'timeStyle') + \" is used\");\n }\n }\n bestFormat = DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData);\n }\n // IMPL DETAIL START\n // For debugging\n internalSlots.format = bestFormat;\n // IMPL DETAIL END\n for (var prop in opt) {\n var p = bestFormat[prop];\n if (p !== undefined) {\n internalSlots[prop] = p;\n }\n }\n var pattern;\n var rangePatterns;\n if (internalSlots.hour !== undefined) {\n var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);\n internalSlots.hourCycle = hc;\n if (hc === 'h11' || hc === 'h12') {\n pattern = bestFormat.pattern12;\n rangePatterns = bestFormat.rangePatterns12;\n }\n else {\n pattern = bestFormat.pattern;\n rangePatterns = bestFormat.rangePatterns;\n }\n }\n else {\n // @ts-ignore\n internalSlots.hourCycle = undefined;\n pattern = bestFormat.pattern;\n rangePatterns = bestFormat.rangePatterns;\n }\n internalSlots.pattern = pattern;\n internalSlots.rangePatterns = rangePatterns;\n return dtf;\n}\n","import { TimeClip } from '../262';\nimport { FormatDateTimePattern, } from './FormatDateTimePattern';\nimport { PartitionPattern } from '../PartitionPattern';\n/**\n * https://tc39.es/ecma402/#sec-partitiondatetimepattern\n * @param dtf\n * @param x\n */\nexport function PartitionDateTimePattern(dtf, x, implDetails) {\n x = TimeClip(x);\n if (isNaN(x)) {\n throw new RangeError('invalid time');\n }\n /** IMPL START */\n var getInternalSlots = implDetails.getInternalSlots;\n var internalSlots = getInternalSlots(dtf);\n /** IMPL END */\n var pattern = internalSlots.pattern;\n return FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);\n}\n","import { SameValue, TimeClip } from '../262';\nimport { ToLocalTime } from './ToLocalTime';\nimport { FormatDateTimePattern, } from './FormatDateTimePattern';\nimport { PartitionPattern } from '../PartitionPattern';\nvar TABLE_2_FIELDS = [\n 'era',\n 'year',\n 'month',\n 'day',\n 'ampm',\n 'hour',\n 'minute',\n 'second',\n];\nexport function PartitionDateTimeRangePattern(dtf, x, y, implDetails) {\n x = TimeClip(x);\n if (isNaN(x)) {\n throw new RangeError('Invalid start time');\n }\n y = TimeClip(y);\n if (isNaN(y)) {\n throw new RangeError('Invalid end time');\n }\n /** IMPL START */\n var getInternalSlots = implDetails.getInternalSlots, tzData = implDetails.tzData;\n var internalSlots = getInternalSlots(dtf);\n /** IMPL END */\n var tm1 = ToLocalTime(x, \n // @ts-ignore\n internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });\n var tm2 = ToLocalTime(y, \n // @ts-ignore\n internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });\n var pattern = internalSlots.pattern, rangePatterns = internalSlots.rangePatterns;\n var rangePattern;\n var dateFieldsPracticallyEqual = true;\n var patternContainsLargerDateField = false;\n for (var _i = 0, TABLE_2_FIELDS_1 = TABLE_2_FIELDS; _i < TABLE_2_FIELDS_1.length; _i++) {\n var fieldName = TABLE_2_FIELDS_1[_i];\n if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) {\n if (fieldName === 'ampm') {\n var v1 = tm1.hour;\n var v2 = tm2.hour;\n var rp = rangePatterns.ampm;\n if ((v1 > 11 && v2 < 11) || (v1 < 11 && v2 > 11)) {\n dateFieldsPracticallyEqual = false;\n }\n if (rangePattern !== undefined && rp === undefined) {\n patternContainsLargerDateField = true;\n }\n rangePattern = rp;\n }\n else {\n var v1 = tm1[fieldName];\n var v2 = tm2[fieldName];\n var rp = rangePatterns[fieldName];\n if (!SameValue(v1, v2)) {\n dateFieldsPracticallyEqual = false;\n }\n if (rangePattern !== undefined && rp === undefined) {\n patternContainsLargerDateField = true;\n }\n rangePattern = rp;\n }\n }\n }\n if (dateFieldsPracticallyEqual) {\n var result_2 = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);\n for (var _a = 0, result_1 = result_2; _a < result_1.length; _a++) {\n var r = result_1[_a];\n r.source = \"shared\" /* shared */;\n }\n return result_2;\n }\n var result = [];\n if (rangePattern === undefined) {\n rangePattern = rangePatterns.default;\n }\n for (var _b = 0, _c = rangePattern.patternParts; _b < _c.length; _b++) {\n var rangePatternPart = _c[_b];\n var source = rangePatternPart.source, pattern_1 = rangePatternPart.pattern;\n var z = void 0;\n if (source === \"startRange\" /* startRange */ ||\n source === \"shared\" /* shared */) {\n z = x;\n }\n else {\n z = y;\n }\n var patternParts = PartitionPattern(pattern_1);\n var partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails);\n for (var _d = 0, partResult_1 = partResult; _d < partResult_1.length; _d++) {\n var r = partResult_1[_d];\n r.source = source;\n }\n result = result.concat(partResult);\n }\n return result;\n}\n","import { ToObject } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-todatetimeoptions\n * @param options\n * @param required\n * @param defaults\n */\nexport function ToDateTimeOptions(options, required, defaults) {\n if (options === undefined) {\n options = null;\n }\n else {\n options = ToObject(options);\n }\n options = Object.create(options);\n var needDefaults = true;\n if (required === 'date' || required === 'any') {\n for (var _i = 0, _a = ['weekday', 'year', 'month', 'day']; _i < _a.length; _i++) {\n var prop = _a[_i];\n var value = options[prop];\n if (value !== undefined) {\n needDefaults = false;\n }\n }\n }\n if (required === 'time' || required === 'any') {\n for (var _b = 0, _c = ['hour', 'minute', 'second']; _b < _c.length; _b++) {\n var prop = _c[_b];\n var value = options[prop];\n if (value !== undefined) {\n needDefaults = false;\n }\n }\n }\n if (options.dateStyle !== undefined || options.timeStyle !== undefined) {\n needDefaults = false;\n }\n if (required === 'date' && options.timeStyle) {\n throw new TypeError('Intl.DateTimeFormat date was required but timeStyle was included');\n }\n if (required === 'time' && options.dateStyle) {\n throw new TypeError('Intl.DateTimeFormat time was required but dateStyle was included');\n }\n if (needDefaults && (defaults === 'date' || defaults === 'all')) {\n for (var _d = 0, _e = ['year', 'month', 'day']; _d < _e.length; _d++) {\n var prop = _e[_d];\n options[prop] = 'numeric';\n }\n }\n if (needDefaults && (defaults === 'time' || defaults === 'all')) {\n for (var _f = 0, _g = ['hour', 'minute', 'second']; _f < _g.length; _f++) {\n var prop = _g[_f];\n options[prop] = 'numeric';\n }\n }\n return options;\n}\n","import { invariant } from '../utils';\nimport { Type, YearFromTime, WeekDay, MonthFromTime, DateFromTime, HourFromTime, MinFromTime, SecFromTime, } from '../262';\nfunction getApplicableZoneData(t, timeZone, tzData) {\n var _a;\n var zoneData = tzData[timeZone];\n // We don't have data for this so just say it's UTC\n if (!zoneData) {\n return [0, false];\n }\n var i = 0;\n var offset = 0;\n var dst = false;\n for (; i <= zoneData.length; i++) {\n if (i === zoneData.length || zoneData[i][0] * 1e3 > t) {\n _a = zoneData[i - 1], offset = _a[2], dst = _a[3];\n break;\n }\n }\n return [offset * 1e3, dst];\n}\n/**\n * https://tc39.es/ecma402/#sec-tolocaltime\n * @param t\n * @param calendar\n * @param timeZone\n */\nexport function ToLocalTime(t, calendar, timeZone, _a) {\n var tzData = _a.tzData;\n invariant(Type(t) === 'Number', 'invalid time');\n invariant(calendar === 'gregory', 'We only support Gregory calendar right now');\n var _b = getApplicableZoneData(t, timeZone, tzData), timeZoneOffset = _b[0], inDST = _b[1];\n var tz = t + timeZoneOffset;\n var year = YearFromTime(tz);\n return {\n weekday: WeekDay(tz),\n era: year < 0 ? 'BC' : 'AD',\n year: year,\n relatedYear: undefined,\n yearName: undefined,\n month: MonthFromTime(tz),\n day: DateFromTime(tz),\n hour: HourFromTime(tz),\n minute: MinFromTime(tz),\n second: SecFromTime(tz),\n inDST: inDST,\n // IMPORTANT: Not in spec\n timeZoneOffset: timeZoneOffset,\n };\n}\n","import { __assign } from \"tslib\";\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n// trim patterns after transformations\nvar expPatternTrimmer = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\nfunction matchSkeletonPattern(match, result) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n return '{era}';\n // Year\n case 'y':\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n result.year = len === 2 ? '2-digit' : 'numeric';\n return '{year}';\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`w/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n return '{month}';\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week of year) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n return '{day}';\n case 'D':\n case 'F':\n case 'g':\n result.day = 'numeric';\n return '{day}';\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n return '{weekday}';\n case 'e':\n result.weekday = [\n 'numeric',\n '2-digit',\n 'short',\n 'long',\n 'narrow',\n 'short',\n ][len - 1];\n return '{weekday}';\n case 'c':\n result.weekday = [\n 'numeric',\n undefined,\n 'short',\n 'long',\n 'narrow',\n 'short',\n ][len - 1];\n return '{weekday}';\n // Period\n case 'a': // AM, PM\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n result.hour12 = true;\n return '{ampm}';\n // Hour\n case 'h':\n result.hour = ['numeric', '2-digit'][len - 1];\n result.hour12 = true;\n return '{hour}';\n case 'H':\n result.hour = ['numeric', '2-digit'][len - 1];\n return '{hour}';\n case 'K':\n result.hour = ['numeric', '2-digit'][len - 1];\n result.hour12 = true;\n return '{hour}';\n case 'k':\n result.hour = ['numeric', '2-digit'][len - 1];\n return '{hour}';\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n return '{minute}';\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n return '{second}';\n case 'S':\n case 'A':\n result.second = 'numeric';\n return '{second}';\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n result.timeZoneName = len < 4 ? 'short' : 'long';\n return '{timeZoneName}';\n }\n return '';\n}\nfunction skeletonTokenToTable2(c) {\n switch (c) {\n // Era\n case 'G':\n return 'era';\n // Year\n case 'y':\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n return 'year';\n // Month\n case 'M':\n case 'L':\n return 'month';\n // Day\n case 'd':\n case 'D':\n case 'F':\n case 'g':\n return 'day';\n // Period\n case 'a': // AM, PM\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n return 'ampm';\n // Hour\n case 'h':\n case 'H':\n case 'K':\n case 'k':\n return 'hour';\n // Minute\n case 'm':\n return 'minute';\n // Second\n case 's':\n case 'S':\n case 'A':\n return 'second';\n default:\n throw new RangeError('Invalid range pattern token');\n }\n}\nexport function processDateTimePattern(pattern, result) {\n var literals = [];\n // Use skeleton to populate result, but use mapped pattern to populate pattern\n var pattern12 = pattern\n // Double apostrophe\n .replace(/'{2}/g, '{apostrophe}')\n // Apostrophe-escaped\n .replace(/'(.*?)'/g, function (_, literal) {\n literals.push(literal);\n return \"$$\" + (literals.length - 1) + \"$$\";\n })\n .replace(DATE_TIME_REGEX, function (m) { return matchSkeletonPattern(m, result || {}); });\n //Restore literals\n if (literals.length) {\n pattern12 = pattern12\n .replace(/\\$\\$(\\d+)\\$\\$/g, function (_, i) {\n return literals[+i];\n })\n .replace(/\\{apostrophe\\}/g, \"'\");\n }\n // Handle apostrophe-escaped things\n return [\n pattern12\n .replace(/([\\s\\uFEFF\\xA0])\\{ampm\\}([\\s\\uFEFF\\xA0])/, '$1')\n .replace('{ampm}', '')\n .replace(expPatternTrimmer, ''),\n pattern12,\n ];\n}\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton, rawPattern, rangePatterns, intervalFormatFallback) {\n if (rawPattern === void 0) { rawPattern = skeleton; }\n var result = {\n pattern: '',\n pattern12: '',\n skeleton: skeleton,\n rawPattern: rawPattern,\n rangePatterns: {},\n rangePatterns12: {},\n };\n if (rangePatterns) {\n for (var k in rangePatterns) {\n var key = skeletonTokenToTable2(k);\n var rawPattern_1 = rangePatterns[k];\n var intervalResult = {\n patternParts: [],\n };\n var _a = processDateTimePattern(rawPattern_1, intervalResult), pattern_1 = _a[0], pattern12_1 = _a[1];\n result.rangePatterns[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern_1) });\n result.rangePatterns12[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern12_1) });\n }\n }\n else if (intervalFormatFallback) {\n var patternParts = splitFallbackRangePattern(intervalFormatFallback);\n result.rangePatterns.default = {\n patternParts: patternParts,\n };\n result.rangePatterns12.default = {\n patternParts: patternParts,\n };\n }\n // Process skeleton\n skeleton.replace(DATE_TIME_REGEX, function (m) { return matchSkeletonPattern(m, result); });\n var _b = processDateTimePattern(rawPattern), pattern = _b[0], pattern12 = _b[1];\n result.pattern = pattern;\n result.pattern12 = pattern12;\n return result;\n}\nexport function splitFallbackRangePattern(pattern) {\n var parts = pattern.split(/(\\{[0|1]\\})/g).filter(Boolean);\n return parts.map(function (pattern) {\n switch (pattern) {\n case '{0}':\n return {\n source: \"startRange\" /* startRange */,\n pattern: pattern,\n };\n case '{1}':\n return {\n source: \"endRange\" /* endRange */,\n pattern: pattern,\n };\n default:\n return {\n source: \"shared\" /* shared */,\n pattern: pattern,\n };\n }\n });\n}\nexport function splitRangePattern(pattern) {\n var PART_REGEX = /\\{(.*?)\\}/g;\n // Map of part and index within the string\n var parts = {};\n var match;\n var splitIndex = 0;\n while ((match = PART_REGEX.exec(pattern))) {\n if (!(match[0] in parts)) {\n parts[match[0]] = match.index;\n }\n else {\n splitIndex = match.index;\n break;\n }\n }\n if (!splitIndex) {\n return [\n {\n source: \"startRange\" /* startRange */,\n pattern: pattern,\n },\n ];\n }\n return [\n {\n source: \"startRange\" /* startRange */,\n pattern: pattern.slice(0, splitIndex),\n },\n {\n source: \"endRange\" /* endRange */,\n pattern: pattern.slice(splitIndex),\n },\n ];\n}\n","export var DATE_TIME_PROPS = [\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport var removalPenalty = 120;\nexport var additionPenalty = 20;\nexport var differentNumericTypePenalty = 15;\nexport var longLessPenalty = 8;\nexport var longMorePenalty = 6;\nexport var shortLessPenalty = 6;\nexport var shortMorePenalty = 3;\n","/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function DefaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(val + \" is outside of range [\" + min + \", \" + max + \"]\");\n }\n return Math.floor(val);\n }\n return fallback;\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { invariant } from '../utils';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nvar UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;\nvar ALPHA_4 = /^[a-z]{4}$/i;\nfunction isUnicodeRegionSubtag(region) {\n return UNICODE_REGION_SUBTAG_REGEX.test(region);\n}\nfunction isUnicodeScriptSubtag(script) {\n return ALPHA_4.test(script);\n}\nexport function CanonicalCodeForDisplayNames(type, code) {\n if (type === 'language') {\n return CanonicalizeLocaleList([code])[0];\n }\n if (type === 'region') {\n if (!isUnicodeRegionSubtag(code)) {\n throw RangeError('invalid region');\n }\n return code.toUpperCase();\n }\n if (type === 'script') {\n if (!isUnicodeScriptSubtag(code)) {\n throw RangeError('invalid script');\n }\n return \"\" + code[0].toUpperCase() + code.slice(1);\n }\n invariant(type === 'currency', 'invalid type');\n if (!IsWellFormedCurrencyCode(code)) {\n throw RangeError('invalid currency');\n }\n return code.toUpperCase();\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n // const descriptor = Object.getOwnPropertyDescriptor(opts, prop);\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(value + \" is not within \" + values.join(', '));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set(Object.keys(tzData).map(function (z) { return z.toUpperCase(); }));\n return zoneNames.has(uppercasedTz) || uppercasedTz in uppercaseLinks;\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\n","import { getMagnitude } from '../utils';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(numberFormat, x, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (x === 0) {\n return [0, 0];\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {\n getInternalSlots: getInternalSlots,\n });\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(getInternalSlots(numberFormat), x);\n if (formatNumberResult.roundedNumber === 0) {\n return [exponent, magnitude];\n }\n var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);\n if (newMagnitude === magnitude - exponent) {\n return [exponent, magnitude];\n }\n return [\n ComputeExponentForMagnitude(numberFormat, magnitude + 1, {\n getInternalSlots: getInternalSlots,\n }),\n magnitude + 1,\n ];\n}\n","/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n default: {\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { ArrayCreate } from '../262';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(nf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","import { SameValue } from '../262';\nimport { ToRawPrecision } from './ToRawPrecision';\nimport { repeat } from '../utils';\nimport { ToRawFixed } from './ToRawFixed';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, x) {\n var isNegative = x < 0 || SameValue(x, -0);\n if (isNegative) {\n x = -x;\n }\n var result;\n var rourndingType = intlObject.roundingType;\n switch (rourndingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);\n break;\n default:\n result = ToRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = ToRawFixed(x, 0, 0);\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { ToObject } from '../262';\nimport { GetOption } from '../GetOption';\nimport { ResolveLocale } from '../ResolveLocale';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { invariant } from '../utils';\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = opts === undefined ? Object.create(null) : ToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \" + numberingSystem);\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(availableLocales, requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \" + r.dataLocale);\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots });\n var style = internalSlots.style;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n }\n var useGrouping = GetOption(options, 'useGrouping', 'boolean', undefined, true);\n internalSlots.useGrouping = useGrouping;\n var signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero'], 'auto');\n internalSlots.signDisplay = signDisplay;\n return nf;\n}\n","import { FormatNumericToString } from './FormatNumericToString';\nimport { SameValue } from '../262';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function PartitionNumberPattern(numberFormat, x, _a) {\n var _b;\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n var magnitude = 0;\n var exponent = 0;\n var n;\n if (isNaN(x)) {\n n = symbols.nan;\n }\n else if (!isFinite(x)) {\n n = symbols.infinity;\n }\n else {\n if (internalSlots.style === 'percent') {\n x *= 100;\n }\n _b = ComputeExponent(numberFormat, x, {\n getInternalSlots: getInternalSlots,\n }), exponent = _b[0], magnitude = _b[1];\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n n = formatNumberResult.formattedString;\n x = formatNumberResult.roundedNumber;\n }\n // Based on https://tc39.es/ecma402/#sec-getnumberformatpattern\n // We need to do this before `x` is rounded.\n var sign;\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n sign = 0;\n break;\n case 'auto':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 0;\n }\n else {\n sign = -1;\n }\n break;\n case 'always':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n break;\n default:\n // x === 0 -> x is 0 or x is -0\n if (x === 0 || isNaN(x)) {\n sign = 0;\n }\n else if (x > 0) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n }\n return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { GetNumberOption } from '../GetNumberOption';\nimport { DefaultNumberOption } from '../DefaultNumberOption';\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n internalSlots.minimumIntegerDigits = mnid;\n if (mnsd !== undefined || mxsd !== undefined) {\n internalSlots.roundingType = 'significantDigits';\n mnsd = DefaultNumberOption(mnsd, 1, 21, 1);\n mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);\n internalSlots.minimumSignificantDigits = mnsd;\n internalSlots.maximumSignificantDigits = mxsd;\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n internalSlots.roundingType = 'fractionDigits';\n mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n internalSlots.minimumFractionDigits = mnfd;\n internalSlots.maximumFractionDigits = mxfd;\n }\n else if (notation === 'compact') {\n internalSlots.roundingType = 'compactRounding';\n }\n else {\n internalSlots.roundingType = 'fractionDigits';\n internalSlots.minimumFractionDigits = mnfdDefault;\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(nf, options, _a) {\n if (options === void 0) { options = Object.create(null); }\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(nf);\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n internalSlots.style = style;\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !IsWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n if (style === 'currency' && currency === undefined) {\n throw TypeError('currency cannot be undefined');\n }\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !IsWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n if (style === 'unit' && unit === undefined) {\n throw TypeError('unit cannot be undefined');\n }\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n internalSlots.currency = currency.toUpperCase();\n internalSlots.currencyDisplay = currencyDisplay;\n internalSlots.currencySign = currencySign;\n }\n if (style === 'unit') {\n internalSlots.unit = unit;\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { repeat } from '../utils';\n/**\n * TODO: dedup with intl-pluralrules and support BigInt\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction and integer between 0 and 20\n * @param maxFraction and integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n = Math.round(x * Math.pow(10, f));\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var _a = m.split('e'), mantissa = _a[0], exponent = _a[1];\n m = mantissa.replace('.', '');\n m = m + repeat('0', Math.max(+exponent - m.length + 1, 0));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = a + \".\" + b;\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n","import { repeat, getMagnitude } from '../utils';\nexport function ToRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n var xToString = x.toString();\n // If xToString is formatted as scientific notation, the number is either very small or very\n // large. If the precision of the formatted string is lower that requested max precision, we\n // should still infer them from the formatted string, otherwise the formatted result might have\n // precision loss (e.g. 1e41 will not have 0 in every trailing digits).\n var xToStringExponentIndex = xToString.indexOf('e');\n var _a = xToString.split('e'), xToStringMantissa = _a[0], xToStringExponent = _a[1];\n var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace('.', '');\n if (xToStringExponentIndex >= 0 &&\n xToStringMantissaWithoutDecimalPoint.length <= p) {\n e = +xToStringExponent;\n m =\n xToStringMantissaWithoutDecimalPoint +\n repeat('0', p - xToStringMantissaWithoutDecimalPoint.length);\n xFinal = x;\n }\n else {\n e = getMagnitude(x);\n var decimalPlaceOffset = e - p + 1;\n // n is the integer containing the required precision digits. To derive the formatted string,\n // we will adjust its decimal place in the logic below.\n var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));\n // The rounding caused the change of magnitude, so we should increment `e` by 1.\n if (adjustDecimalPlace(n, p - 1) >= 10) {\n e = e + 1;\n // Divide n by 10 to swallow one precision.\n n = Math.floor(n / 10);\n }\n m = n.toString();\n // Equivalent of n * 10 ** (e - p + 1)\n xFinal = adjustDecimalPlace(n, p - 1 - e);\n }\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = m.slice(0, e + 1) + \".\" + m.slice(e + 1);\n int = e + 1;\n }\n else {\n m = \"0.\" + repeat('0', -e - 1) + m;\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n // x / (10 ** magnitude), but try to preserve as much floating point precision as possible.\n function adjustDecimalPlace(x, magnitude) {\n return magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n }\n}\n","import { ToRawFixed } from './ToRawFixed';\nimport * as digitMapping from './digit-mapping.json';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\nvar S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BFF\\u2CE5-\\u2CEA\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9B\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD10-\\uDD6C\\uDD70-\\uDDAC\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED5\\uDEE0-\\uDEEC\\uDEF0-\\uDEFA\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDD00-\\uDD0B\\uDD0D-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95]/;\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\" + S_UNICODE_REGEX.source);\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + \"$\");\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\" + afterCurrency + \"{0}\");\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\" + beforeCurrency + \"\\u00A4\");\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && options.useGrouping, decimalNumberPattern));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {\n var part = unitPatternParts_1[_a];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _b = unit.split('-per-'), numeratorUnit = _b[0], denominatorUnit = _b[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _c = 0, _d = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _c < _d.length; _c++) {\n var part = _d[_c];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (isNaN(x)) {\n return [{ type: 'nan', value: n }];\n }\n else if (!isFinite(x)) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n if (useGrouping && (notation !== 'compact' || x >= 10000)) {\n var groupSepSymbol = symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n result.push({ type: 'decimal', value: symbols.decimal }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n isFinite(x)) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(exponent, 0, 0);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = pattern + \";-\" + pattern;\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\" + zeroPattern;\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \" + pattern);\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { invariant } from '../utils';\nimport { ToNumber } from '../262';\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-getoperands\n * @param s\n */\nexport function GetOperands(s) {\n invariant(typeof s === 'string', \"GetOperands should have been called with a string\");\n var n = ToNumber(s);\n invariant(isFinite(n), 'n should be finite');\n var dp = s.indexOf('.');\n var iv;\n var f;\n var v;\n var fv = '';\n if (dp === -1) {\n iv = n;\n f = 0;\n v = 0;\n }\n else {\n iv = s.slice(0, dp);\n fv = s.slice(dp, s.length);\n f = ToNumber(fv);\n v = fv.length;\n }\n var i = Math.abs(ToNumber(iv));\n var w;\n var t;\n if (f !== 0) {\n var ft = fv.replace(/0+$/, '');\n w = ft.length;\n t = ToNumber(ft);\n }\n else {\n w = 0;\n t = 0;\n }\n return {\n Number: n,\n IntegerDigits: i,\n NumberOfFractionDigits: v,\n NumberOfFractionDigitsWithoutTrailing: w,\n FractionDigits: f,\n FractionDigitsWithoutTrailing: t,\n };\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { ToObject } from '../262';\nimport { GetOption } from '../GetOption';\nimport { SetNumberFormatDigitOptions } from '../NumberFormat/SetNumberFormatDigitOptions';\nimport { ResolveLocale } from '../ResolveLocale';\nexport function InitializePluralRules(pl, locales, options, _a) {\n var availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getInternalSlots = _a.getInternalSlots;\n var requestedLocales = CanonicalizeLocaleList(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : ToObject(options);\n var internalSlots = getInternalSlots(pl);\n internalSlots.initializedPluralRules = true;\n var matcher = GetOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n internalSlots.type = GetOption(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal');\n SetNumberFormatDigitOptions(internalSlots, opts, 0, 3, 'standard');\n var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n internalSlots.locale = r.locale;\n return pl;\n}\n","import { invariant } from '../utils';\nimport { Type } from '../262';\nimport { FormatNumericToString } from '../NumberFormat/FormatNumericToString';\nimport { GetOperands } from './GetOperands';\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural\n * @param pl\n * @param n\n * @param PluralRuleSelect Has to pass in bc it's implementation-specific\n */\nexport function ResolvePlural(pl, n, _a) {\n var getInternalSlots = _a.getInternalSlots, PluralRuleSelect = _a.PluralRuleSelect;\n var internalSlots = getInternalSlots(pl);\n invariant(Type(internalSlots) === 'Object', 'pl has to be an object');\n invariant('initializedPluralRules' in internalSlots, 'pluralrules must be initialized');\n invariant(Type(n) === 'Number', 'n must be a number');\n if (!isFinite(n)) {\n return 'other';\n }\n var locale = internalSlots.locale, type = internalSlots.type;\n var res = FormatNumericToString(internalSlots, n);\n var s = res.formattedString;\n var operands = GetOperands(s);\n return PluralRuleSelect(locale, type, n, operands);\n}\n","import { PartitionRelativeTimePattern } from './PartitionRelativeTimePattern';\nexport function FormatRelativeTime(rtf, value, unit, implDetails) {\n var parts = PartitionRelativeTimePattern(rtf, value, unit, implDetails);\n var result = '';\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result += part.value;\n }\n return result;\n}\n","import { PartitionRelativeTimePattern } from './PartitionRelativeTimePattern';\nimport { ArrayCreate } from '../262';\nexport function FormatRelativeTimeToParts(rtf, value, unit, implDetails) {\n var parts = PartitionRelativeTimePattern(rtf, value, unit, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n var o = {\n type: part.type,\n value: part.value,\n };\n if ('unit' in part) {\n o.unit = part.unit;\n }\n result.push(o);\n }\n return result;\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { ToObject } from '../262';\nimport { GetOption } from '../GetOption';\nimport { ResolveLocale } from '../ResolveLocale';\nimport { invariant } from '../utils';\nvar NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;\nexport function InitializeRelativeTimeFormat(rtf, locales, options, _a) {\n var getInternalSlots = _a.getInternalSlots, availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale;\n var internalSlots = getInternalSlots(rtf);\n internalSlots.initializedRelativeTimeFormat = true;\n var requestedLocales = CanonicalizeLocaleList(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : ToObject(options);\n var matcher = GetOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(opts, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined) {\n if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {\n throw new RangeError(\"Invalid numbering system \" + numberingSystem);\n }\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n var locale = r.locale, nu = r.nu;\n internalSlots.locale = locale;\n internalSlots.style = GetOption(opts, 'style', 'string', ['long', 'narrow', 'short'], 'long');\n internalSlots.numeric = GetOption(opts, 'numeric', 'string', ['always', 'auto'], 'always');\n var fields = localeData[r.dataLocale];\n invariant(!!fields, \"Missing locale data for \" + r.dataLocale);\n internalSlots.fields = fields;\n internalSlots.numberFormat = new Intl.NumberFormat(locales);\n internalSlots.pluralRules = new Intl.PluralRules(locales);\n internalSlots.numberingSystem = nu;\n return rtf;\n}\n","import { PartitionPattern } from '../PartitionPattern';\nimport { invariant } from '../utils';\nexport function MakePartsList(pattern, unit, parts) {\n var patternParts = PartitionPattern(pattern);\n var result = [];\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var patternPart = patternParts_1[_i];\n if (patternPart.type === 'literal') {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else {\n invariant(patternPart.type === '0', \"Malformed pattern \" + pattern);\n for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {\n var part = parts_1[_a];\n result.push({\n type: part.type,\n value: part.value,\n unit: unit,\n });\n }\n }\n }\n return result;\n}\n","import { invariant } from '../utils';\nimport { SingularRelativeTimeUnit } from './SingularRelativeTimeUnit';\nimport { MakePartsList } from './MakePartsList';\nimport { ToString, Type, SameValue } from '../262';\nexport function PartitionRelativeTimePattern(rtf, value, unit, _a) {\n var getInternalSlots = _a.getInternalSlots;\n invariant(Type(value) === 'Number', \"value must be number, instead got \" + typeof value, TypeError);\n invariant(Type(unit) === 'String', \"unit must be number, instead got \" + typeof value, TypeError);\n if (isNaN(value) || !isFinite(value)) {\n throw new RangeError(\"Invalid value \" + value);\n }\n var resolvedUnit = SingularRelativeTimeUnit(unit);\n var _b = getInternalSlots(rtf), fields = _b.fields, style = _b.style, numeric = _b.numeric, pluralRules = _b.pluralRules, numberFormat = _b.numberFormat;\n var entry = resolvedUnit;\n if (style === 'short') {\n entry = resolvedUnit + \"-short\";\n }\n else if (style === 'narrow') {\n entry = resolvedUnit + \"-narrow\";\n }\n if (!(entry in fields)) {\n entry = resolvedUnit;\n }\n var patterns = fields[entry];\n if (numeric === 'auto') {\n if (ToString(value) in patterns) {\n return [\n {\n type: 'literal',\n value: patterns[ToString(value)],\n },\n ];\n }\n }\n var tl = 'future';\n if (SameValue(value, -0) || value < 0) {\n tl = 'past';\n }\n var po = patterns[tl];\n var fv = typeof numberFormat.formatToParts === 'function'\n ? numberFormat.formatToParts(Math.abs(value))\n : // TODO: If formatToParts is not supported, we assume the whole formatted\n // number is a part\n [\n {\n type: 'literal',\n value: numberFormat.format(Math.abs(value)),\n unit: unit,\n },\n ];\n var pr = pluralRules.select(value);\n var pattern = po[pr];\n return MakePartsList(pattern, resolvedUnit, fv);\n}\n","import { invariant } from '../utils';\nimport { Type } from '../262';\n/**\n * https://tc39.es/proposal-intl-relative-time/#sec-singularrelativetimeunit\n * @param unit\n */\nexport function SingularRelativeTimeUnit(unit) {\n invariant(Type(unit) === 'String', 'unit must be a string');\n if (unit === 'seconds')\n return 'second';\n if (unit === 'minutes')\n return 'minute';\n if (unit === 'hours')\n return 'hour';\n if (unit === 'days')\n return 'day';\n if (unit === 'weeks')\n return 'week';\n if (unit === 'months')\n return 'month';\n if (unit === 'quarters')\n return 'quarter';\n if (unit === 'years')\n return 'year';\n if (unit !== 'second' &&\n unit !== 'minute' &&\n unit !== 'hour' &&\n unit !== 'day' &&\n unit !== 'week' &&\n unit !== 'month' &&\n unit !== 'quarter' &&\n unit !== 'year') {\n throw new RangeError('invalid unit');\n }\n return unit;\n}\n","import { LookupMatcher } from './LookupMatcher';\nimport { BestFitMatcher } from './BestFitMatcher';\nimport { invariant } from './utils';\nimport { UnicodeExtensionValue } from './UnicodeExtensionValue';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n else {\n r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n invariant(foundLocale in localeData, \"Missing locale data for \" + foundLocale);\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \" + key + \" must be an object\");\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \" + key + \" must be an array\");\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, \"value must be string or null but got \" + typeof value + \" in key \" + key);\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = UnicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\" + key + \"-\" + value;\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\" + key;\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = Intl.getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n}\n","import { ToObject } from './262';\nimport { GetOption } from './GetOption';\nimport { LookupSupportedLocales } from './LookupSupportedLocales';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(availableLocales, requestedLocales);\n }\n return LookupSupportedLocales(availableLocales, requestedLocales);\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nexport function UnicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\" + key + \"-\";\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\" + key;\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","export { BestFitFormatMatcher } from './DateTimeFormat/BestFitFormatMatcher';\nexport * from './CanonicalizeLocaleList';\nexport * from './CanonicalizeTimeZoneName';\nexport * from './DateTimeFormat/BasicFormatMatcher';\nexport * from './DateTimeFormat/DateTimeStyleFormat';\nexport * from './DateTimeFormat/FormatDateTime';\nexport * from './DateTimeFormat/FormatDateTimeRange';\nexport * from './DateTimeFormat/FormatDateTimeRangeToParts';\nexport * from './DateTimeFormat/FormatDateTimeToParts';\nexport * from './DateTimeFormat/InitializeDateTimeFormat';\nexport * from './DateTimeFormat/PartitionDateTimePattern';\nexport * from './DateTimeFormat/ToDateTimeOptions';\nexport * from './DisplayNames/CanonicalCodeForDisplayNames';\nexport * from './GetNumberOption';\nexport * from './GetOption';\nexport * from './IsSanctionedSimpleUnitIdentifier';\nexport * from './IsValidTimeZoneName';\nexport * from './IsWellFormedCurrencyCode';\nexport * from './IsWellFormedUnitIdentifier';\nexport * from './NumberFormat/ComputeExponent';\nexport * from './NumberFormat/ComputeExponentForMagnitude';\nexport * from './NumberFormat/CurrencyDigits';\nexport * from './NumberFormat/FormatNumericToParts';\nexport * from './NumberFormat/FormatNumericToString';\nexport * from './NumberFormat/InitializeNumberFormat';\nexport * from './NumberFormat/PartitionNumberPattern';\nexport * from './NumberFormat/SetNumberFormatDigitOptions';\nexport * from './NumberFormat/SetNumberFormatUnitOptions';\nexport * from './NumberFormat/ToRawFixed';\nexport * from './NumberFormat/ToRawPrecision';\nexport * from './PartitionPattern';\nexport * from './PluralRules/GetOperands';\nexport * from './PluralRules/InitializePluralRules';\nexport * from './PluralRules/ResolvePlural';\nexport * from './RelativeTimeFormat/FormatRelativeTime';\nexport * from './RelativeTimeFormat/FormatRelativeTimeToParts';\nexport * from './RelativeTimeFormat/InitializeRelativeTimeFormat';\nexport * from './RelativeTimeFormat/MakePartsList';\nexport * from './RelativeTimeFormat/PartitionRelativeTimePattern';\nexport * from './RelativeTimeFormat/SingularRelativeTimeUnit';\nexport * from './ResolveLocale';\nexport * from './SupportedLocales';\nexport { default as _formatToParts } from './NumberFormat/format_to_parts';\nexport { DATE_TIME_PROPS } from './DateTimeFormat/utils';\nexport { parseDateTimeSkeleton } from './DateTimeFormat/skeleton';\nexport { getInternalSlot, getMultiInternalSlots, isLiteralPart, setInternalSlot, setMultiInternalSlots, getMagnitude, defineProperty, } from './utils';\nexport { isMissingLocaleDataError } from './data';\nexport * from './types/relative-time';\nexport * from './types/date-time';\nexport * from './types/list';\nexport * from './types/plural-rules';\nexport * from './types/number';\nexport * from './types/displaynames';\nexport { invariant } from './utils';\nexport * from './262';\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","export {};\n","export {};\n","export {};\n","export {};\n","export {};\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","export * from './src/types';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\nexport { createIntlCache, filterProps, DEFAULT_INTL_CONFIG, createFormatters, getNamedFormat, } from './src/utils';\nexport * from './src/error';\nexport { formatMessage } from './src/message';\nexport { formatDate, formatDateToParts, formatTime, formatTimeToParts, } from './src/dateTime';\nexport { formatDisplayName } from './src/displayName';\nexport { formatList } from './src/list';\nexport { formatPlural } from './src/plural';\nexport { formatRelativeTime } from './src/relativeTime';\nexport { formatNumber, formatNumberToParts } from './src/number';\nexport { createIntl } from './src/create-intl';\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList } from './list';\nimport { formatDisplayName } from './displayName';\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\"));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.NumberFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n var firstMessage = config.messages\n ? config.messages[Object.keys(config.messages)[0]]\n : undefined;\n if (config.defaultRichTextElements &&\n firstMessage &&\n typeof firstMessage === 'string') {\n console.warn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'fractionalSecondDigits',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date time range.', e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError } from 'intl-messageformat';\nimport { IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting display name.', e));\n }\n}\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = _super.call(this, \"[@formatjs/intl Error \" + code + \"] \" + message + \" \\n\" + (exception ? \"\\n\" + exception.message + \"\\n\" + exception.stack : '')) || this;\n _this.code = code;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, \"UNSUPPORTED_FORMATTER\" /* UNSUPPORTED_FORMATTER */, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, \"INVALID_CONFIG\" /* INVALID_CONFIG */, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, \"MISSING_DATA\" /* MISSING_DATA */, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"FORMAT_ERROR\" /* FORMAT_ERROR */, message + \" \\nLocale: \" + locale + \"\\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, \"MISSING_TRANSLATION\" /* MISSING_TRANSLATION */, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { filterProps } from './utils';\nimport { FormatError } from 'intl-messageformat';\nimport { IntlError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return now + \"_\" + i + \"_\" + now;\n}\nexport function formatList(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues_1).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n var parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce(function (all, el) {\n var val = el.value;\n if (richValues_1[val]) {\n all.push(richValues_1[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting list.', e));\n }\n // @ts-ignore\n return values;\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from 'intl-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport function formatMessage(_a, state, messageDescriptor, values) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, '[@formatjs/intl] An `id` must be provided to format a message.');\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\" + id + \"\\\", rendering default message verbatim\", locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\" + id + \"\\\", using \" + (defaultMessage ? 'default message' : 'id') + \" as fallback.\", locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\" + id + \"\\\", rendering message verbatim\", locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlError(\"FORMAT_ERROR\" /* FORMAT_ERROR */, 'Error formatting number.', e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { MessageFormatError } from './error';\nimport { FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new MessageFormatError('Error formatting plural.', e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError } from 'intl-messageformat';\nimport { MessageFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new MessageFormatError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","export {};\n","import { __assign, __spreadArrays } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport * as memoize from 'fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return whitelist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n has: function (key) {\n return key in store;\n },\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n// @ts-ignore this is to deal with rollup's default import shenanigans\nvar _memoizeIntl = memoize.default || memoize;\nvar memoizeIntl = _memoizeIntl;\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: memoizeIntl.strategies.variadic,\n });\n var getNumberFormat = memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: memoizeIntl.strategies.variadic,\n });\n var getPluralRules = memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: memoizeIntl.strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoizeIntl(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: memoizeIntl.strategies.variadic,\n }),\n getRelativeTimeFormat: memoizeIntl(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: memoizeIntl.strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoizeIntl(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: memoizeIntl.strategies.variadic,\n }),\n getDisplayNames: memoizeIntl(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: memoizeIntl.strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}\n","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export * from \"./enums.js\";\nexport * from \"./modifiers/index.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { popperGenerator, detectOverflow, createPopper as createPopperBase } from \"./createPopper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper } from \"./popper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ModalMedium=exports.ModalClasses=exports.modalSelector=exports.createModal=exports.initModal=void 0;var SKModal_1=require(\"./js/SKModal\");Object.defineProperty(exports,\"initModal\",{enumerable:!0,get:function(){return SKModal_1.initModal}}),Object.defineProperty(exports,\"createModal\",{enumerable:!0,get:function(){return SKModal_1.createModal}});var constants_1=require(\"./js/constants\");Object.defineProperty(exports,\"modalSelector\",{enumerable:!0,get:function(){return constants_1.modalSelector}}),Object.defineProperty(exports,\"ModalClasses\",{enumerable:!0,get:function(){return constants_1.ModalClasses}}),Object.defineProperty(exports,\"ModalMedium\",{enumerable:!0,get:function(){return constants_1.ModalMedium}});","\"use strict\";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n0&&o[o.length-1])||6!==s[0]&&2!==s[0])){l=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]\\n\\t\\t\\tClose\\n\\t\\t\\t'+e.closeIcon+\"\\n\\t\\t\\n\\t\"},titleTpl:function(e){return\"

\"+e+\"

\"},descTpl:function(e){return\"

\"+e+\"

\"},prevTpl:function(e){return'\"},nextTpl:function(e){return'\"},loaderTpl:function(e){return''+e.loadIcon+\"\"},navTpl:function(e){return e.map((function(e,t){return''})).join(\"\")},imageLoader:loadImage,fetchLoader:loadContent},create=function(e,t,n){var a=0,o=__spreadArray([],t),s=null,l=null,r=0,i=!1,c={},d=[],u=null,m=document.createElement(\"div\"),_=emmiter_1.create({}),f=focus_trap_1.createFocusTrap(m,n.focusTrapOptions),p=function(e){var t=c.content;return t.innerHTML=\"\",e.map((function(){var e=document.createElement(\"div\");return e.setAttribute(\"class\",\"b-modal__slide \"+constants_1.ModalClasses.SLIDE),t.appendChild(e),e}))},v=function(){_.trigger(\"modalContentLoaded\",{modal:u},c.content)},h=function(e,t){var n=e.medium;return t?n||(Array.isArray(t)?h(e,t[0]):constants_1.mediaRegex.anchor.test(t)?constants_1.ModalMedium.ELEMENT:constants_1.mediaRegex.image.test(t)?constants_1.ModalMedium.IMAGE:constants_1.mediaRegex.video.test(t)?constants_1.ModalMedium.VIDEO:constants_1.mediaRegex.youtube.test(t)?constants_1.ModalMedium.YOUTUBE:constants_1.mediaRegex.vimeo.test(t)?constants_1.ModalMedium.VIMEO:\"\"!==t?constants_1.ModalMedium.IFRAME:null):null},g=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,o,r,i,c,d,u,m,_,f,p,g,M,b,E,y,L,T,C,w,k;return __generator(this,(function(x){switch(x.label){case 0:if(t=e.element,a=e.url,o=e.player,r=t?t.getAttribute(\"href\"):a,!(i=h(e,r)))return console.warn(\"SKModal: Modal medium type was not resolved. Check if the source is correct. Provided source was '\"+r+\"'.\"),[2,null];if(i!==constants_1.ModalMedium.IMAGE)return[3,5];c=Array.isArray(r)?r:[r],w=document.createElement(\"div\"),d=0,u=c,x.label=1;case 1:return d=window.innerHeight&&1===c.length&&_.classList.add(\"is-big\"),x.label=3;case 3:return d++,[3,1];case 4:return w.classList.add(\"b-modal__image\"),c.length>1&&w.classList.add(\"b-modal__image--multiple\"),[2,w];case 5:return Array.isArray(r)?(console.warn(\"SKModal: Multiple urls are allowed only for images!\"),[2,null]):i===constants_1.ModalMedium.ELEMENT?(g=document.querySelector(r),(f=document.createElement(\"div\")).className=\"b-modal__inner\",g?f.innerHTML=g.innerHTML:console.warn(\"SKModal: Content element not found. Check if the id is correct. Provided id was '\"+r+\"'.\"),[2,f]):i===constants_1.ModalMedium.CONTENT?((f=document.createElement(\"div\")).className=\"b-modal__inner\",f.innerHTML=r,[2,f]):i!==constants_1.ModalMedium.FETCH?[3,7]:[4,n.fetchLoader(r)];case 6:return p=x.sent(),(g=document.createElement(\"div\")).className=\"b-modal__inner\",g.innerHTML=p,[2,g];case 7:return i===constants_1.ModalMedium.VIDEO?(M=r.match(constants_1.mediaRegex.video))?(b=\"video/\"+(\"ogv\"===M[1]?\"ogg\":M[1]),w=document.createElement(\"div\"),E='',w.classList.add(\"b-modal__video\"),w.innerHTML=E,[2,w]):[2,null]:i===constants_1.ModalMedium.IFRAME?(C=getIframe(r,v),(w=document.createElement(\"div\")).classList.add(\"b-modal__iframe\"),w.appendChild(C),[2,w]):i!==constants_1.ModalMedium.YOUTUBE?[3,10]:(L=r.match(constants_1.mediaRegex.youtube))?(T=\"https://www.youtube.com/embed/\"+L[4]+\"?autoplay=1&autohide=1&fs=1&rel=0&hd=1&wmode=transparent&enablejsapi=1&html5=1\",C=getIframe(T,v,!0),(w=document.createElement(\"div\")).classList.add(\"b-modal__embed\"),w.appendChild(C),s?[3,9]:[4,loadYoutube_1.default()]):[2,null];case 8:s=x.sent(),x.label=9;case 9:return o||(y=new s.Player(C),e.player=y),[2,w];case 10:return i!==constants_1.ModalMedium.VIMEO?[3,13]:(L=r.match(constants_1.mediaRegex.vimeo))?(T=\"https://player.vimeo.com/video/\"+L[2]+\"?autoplay=1&portrait=0\",C=getIframe(T,v,!0),(w=document.createElement(\"div\")).classList.add(\"b-modal__embed\"),w.appendChild(C),l?[3,12]:[4,loadVimeo_1.default()]):[2,null];case 11:l=x.sent(),x.label=12;case 12:return o||(k=new l.Player(C),e.player=k),[2,w];case 13:return[2,null]}}))}))},M=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,s,l,r,i,p,v,M,b,E,y;return __generator(this,(function(L){switch(L.label){case 0:return a=e,t=o[e],s=t.title,l=t.desc,r=t.element,i=t.url,v=(p=c).titleElem,M=p.descElem,n.infinite||(0===a?m.classList.add(\"is-first\"):m.classList.remove(\"is-first\"),a===o.length-1?m.classList.add(\"is-last\"):m.classList.remove(\"is-last\")),v.innerHTML=s?n.titleTpl(s):\"\",M.innerHTML=l?n.descTpl(l):\"\",d[e].classList.contains(\"is-loaded\")?[3,2]:(m.classList.add(\"is-loading\"),[4,g(t)]);case 1:(b=L.sent())&&d[e].appendChild(b),m.classList.remove(\"is-loading\"),d[e].classList.add(\"is-loaded\"),L.label=2;case 2:return d.forEach((function(e,t){e.classList.remove(\"is-active\");var n=e.querySelector(\"video\"),s=o[t].player;s&&(t===a?s.playVideo?s.playVideo():s.play&&s.play():s.pauseVideo?s.pauseVideo():s.pause&&s.pause()),t===a?(e.classList.add(\"is-active\"),n&&n.play()):n&&n.pause()})),Array.from(m.querySelectorAll(\".\"+constants_1.ModalClasses.NAV_TRIGGER)).forEach((function(e,t){t===a?e.classList.add(\"is-active\"):e.classList.remove(\"is-active\")})),E=r?r.getAttribute(\"href\"):i,(y=h(t,E))&&y!==constants_1.ModalMedium.IFRAME&&y!==constants_1.ModalMedium.VIMEO&&y!==constants_1.ModalMedium.YOUTUBE&&(_.trigger(\"modalContentLoaded\",{modal:u},c.content),n.enableFocusTrap&&f.activate()),_.trigger(\"modalSlideChanged\",{page:a+1}),[2]}}))}))},b=function(){if(!n.hideNav){var e=a-1;if(e<0&&n.infinite)e=o.length-1;else if(e<0)return;M(e)}},E=function(){if(!n.hideNav){var e=a+1;if(e>o.length-1&&n.infinite)e=0;else if(e>o.length-1)return;M(e)}},y=event_1.delegate(\".\"+constants_1.ModalClasses.PREV_TRIGGER,(function(e){e.preventDefault(),b()})),L=event_1.delegate(\".\"+constants_1.ModalClasses.NEXT_TRIGGER,(function(e){e.preventDefault(),E()})),T=event_1.delegate(\".\"+constants_1.ModalClasses.NAV_TRIGGER,(function(e){var t=e.target.dataset.modalIndex;t&&M(parseInt(t))})),C=function(t,a){void 0===t&&(t=0),a&&a.preventDefault(),i||(function(){m.innerHTML=\"\",m.setAttribute(\"id\",\"modal-\"+e),m.setAttribute(\"class\",\"b-modal \"+(n.customWrapperClass||\"\")),m.setAttribute(\"tabindex\",\"0\"),n.parentElement.appendChild(m);var t=document.createElement(\"div\"),a=document.createElement(\"div\"),s=document.createElement(\"div\"),l=document.createElement(\"div\"),r=document.createElement(\"div\"),i=document.createElement(\"div\"),f=document.createElement(\"div\"),v=document.createElement(\"div\"),h=document.createElement(\"div\");c={header:t,titleElem:a,descElem:s,content:l,prevElem:r,nextElem:i,navElem:f,loader:v,bg:h},t.className=\"b-modal__header \"+constants_1.ModalClasses.HEADER,a.className=\"b-modal__title \"+constants_1.ModalClasses.TITLE,s.className=\"b-modal__description \"+constants_1.ModalClasses.DESC,l.className=\"b-modal__content \"+constants_1.ModalClasses.CONTENT,r.className=\"b-modal__prev \"+constants_1.ModalClasses.PREV,i.className=\"b-modal__next \"+constants_1.ModalClasses.NEXT,f.className=\"b-modal__nav \"+constants_1.ModalClasses.NAV,v.className=\"b-modal__loader \"+constants_1.ModalClasses.LOADER,h.className=\"b-modal__bg \"+constants_1.ModalClasses.BG+\" \"+(n.closeOnBgClick?constants_1.ModalClasses.CLOSE:\"\"),n.buildStructure(m,c),d=p(o),t.innerHTML=n.headerTpl(n),n.hideNav||(r.innerHTML=n.prevTpl(n),i.innerHTML=n.nextTpl(n),f.innerHTML=o.length>1?n.navTpl(o):\"\"),v.innerHTML=n.loaderTpl(n),event_1.on(m,\"click\",w),event_1.on(m,\"click\",y),event_1.on(m,\"click\",L),event_1.on(m,\"click\",T),event_1.on(m,\"keydown\",x),event_1.on(l,\"touchstart\",I),event_1.on(l,\"touchend\",O),n.onModalOpen&&_.on(\"modalOpen\",n.onModalOpen),n.onModalClose&&_.on(\"modalClose\",n.onModalClose),n.onModalContentLoaded&&_.on(\"modalContentLoaded\",n.onModalContentLoaded),n.onModalSlideChanged&&_.on(\"modalSlideChanged\",n.onModalSlideChanged),u.fragments=c}(),i=!0),m.classList.add(\"is-opened\"),M(t),n.enableSrollLock&&scroll_lock_1.disablePageScroll(m),_.trigger(\"modalOpen\",{id:e},m),u.isOpened=!0},w=event_1.delegate(n.closeSelector,(function(e){e.preventDefault(),k()})),k=function(){m.classList.remove(\"is-opened\"),u.isOpened=!1,d.forEach((function(e,t){var n=e.querySelector(\"video\"),a=o[t].player;a&&(a.pauseVideo?a.pauseVideo():a.pause&&a.pause()),n&&n.pause()})),n.enableFocusTrap&&f.deactivate(),n.enableSrollLock&&scroll_lock_1.enablePageScroll(m),_.trigger(\"modalClose\",{id:e},m),n.removeOnClose&&(modals[e].element.remove(),i=!1)},x=function(e){switch(e.key){case\"Left\":case\"Up\":case\"ArrowLeft\":case\"ArrowUp\":b();break;case\"Right\":case\"Down\":case\"ArrowRight\":case\"ArrowDown\":E();break;case\"Esc\":case\"Escape\":k();break;default:return}},I=function(e){r=e.changedTouches[0].clientX},O=function(e){if(r&&!(e.touches.length>1)){var t=e.changedTouches[0].clientX-r;Math.abs(t)>=20&&(t<0?E():b())}};return t.forEach((function(e,t){var n=e.element;n&&(e.clickHandler=function(e){return C(t,e)},event_1.on(n,\"click\",e.clickHandler))})),u={options:n,emmiter:_,context:n.context,element:m,fragments:c,items:t,isOpened:!1,methods:{open:C,close:k,prev:b,next:E,goTo:M,redraw:function(t,s){var l=c.navElem;n.plugins&&n.plugins.length&&n.plugins.forEach((function(t){return t.reInitOnRedraw&&t.destroy&&t.destroy(modals[e])})),o=__spreadArray([],t),modals[e].items=o,d=p(t),l.innerHTML=t.length>1?n.navTpl(t):\"\",n.plugins&&n.plugins.length&&n.plugins.forEach((function(t){return t.reInitOnRedraw&&t.init(modals[e])})),s||M(t[a]?a:0)},getIndex:function(){return a},destroy:function(){var a=c.content;event_1.off(m,\"click\",w),event_1.off(m,\"click\",y),event_1.off(m,\"click\",L),event_1.off(m,\"click\",T),event_1.off(m,\"keydown\",x),event_1.off(a,\"touchstart\",I),event_1.off(a,\"touchend\",O),_.off(),t.forEach((function(e){e.clickHandler&&event_1.off(e.element,\"click\",e.clickHandler)})),n.plugins&&n.plugins.length&&n.plugins.forEach((function(t){return t.destroy&&t.destroy(modals[e])})),modals[e].element.remove()}}},n.plugins&&n.plugins.length&&n.plugins.forEach((function(e){return e.init(u)})),u},initModal=function(e){var t=__assign(__assign({},defaultOpts),e),n=t.context;if(!n)return modals;var a=Array.from(n.querySelectorAll(t.modalSelector)).map((function(e){return __assign({element:e},JSON.parse(e.dataset.modal||\"{}\"))})).reduce((function(e,t){var n=t.gallery,a=void 0===n?\"default\":n;return e[a]?e[a].push(t):e[a]=[t],e}),{});return Object.keys(a).forEach((function(e){var n=__assign({},t);\"default\"===e&&(n.hideNav=!0),modals.push(create(modals.length,a[e],n))})),modals};exports.initModal=initModal;var createModal=function(e,t){var n=create(modals.length,Array.isArray(e)?e:[e],__assign(__assign({},defaultOpts),t));return modals.push(n),n};exports.createModal=createModal;","\"use strict\";var ModalClasses,ModalMedium;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.buildStructure=exports.mediaRegex=exports.modalSelector=exports.ModalMedium=exports.ModalClasses=void 0,function(e){e.HEADER=\"js-modal-header\",e.TITLE=\"js-modal-title\",e.TITLE_TEXT=\"js-modal-title-text\",e.DESC=\"js-modal-desc\",e.DESC_TEXT=\"js-modal-desc-text\",e.CONTENT=\"js-modal-content\",e.PREV=\"js-modal-prev\",e.NEXT=\"js-modal-next\",e.NAV=\"js-modal-nav\",e.LOADER=\"js-modal-loader\",e.BG=\"js-modal-bg\",e.CLOSE=\"js-modal-close\",e.SLIDE=\"js-modal-slide\",e.PREV_TRIGGER=\"js-modal-prev-trigger\",e.NEXT_TRIGGER=\"js-modal-next-trigger\",e.NAV_TRIGGER=\"js-modal-nav-trigger\",e.IFRAME=\"js-modal-iframe\"}(ModalClasses=exports.ModalClasses||(exports.ModalClasses={})),function(e){e.IMAGE=\"image\",e.VIDEO=\"video\",e.YOUTUBE=\"youtube\",e.VIMEO=\"vimeo\",e.ELEMENT=\"element\",e.FETCH=\"fetch\",e.IFRAME=\"iframe\",e.CONTENT=\"content\"}(ModalMedium=exports.ModalMedium||(exports.ModalMedium={})),exports.modalSelector=\"[data-modal]\",exports.mediaRegex={anchor:/^\\#(.+)/,image:/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i,video:/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i,youtube:/(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,vimeo:/^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/i};var buildStructure=function(e,o){var d=o.header,a=o.titleElem,l=o.descElem,t=o.content,s=o.prevElem,i=o.nextElem,m=o.navElem,r=o.loader,p=o.bg;e.appendChild(d),e.appendChild(a),e.appendChild(l),e.appendChild(t),e.appendChild(s),e.appendChild(i),e.appendChild(m),e.appendChild(r),e.appendChild(p)};exports.buildStructure=buildStructure;","import {curry} from './function';\r\n\r\nexport const first = (arr) => {\r\n\treturn arr[0] || null;\r\n};\r\n\r\nexport const last = (arr) => {\r\n\treturn arr[arr.length - 1] || null;\r\n};\r\n\r\nexport const length = (arr) => {\r\n\treturn arr.length;\r\n};\r\n\r\nexport const clone = (arr) => {\r\n\treturn [].slice.call(arr);\r\n};\r\n\r\nexport const map = curry((fn, arr) => {\r\n\treturn arr.map(fn);\r\n});\r\n\r\nexport const flatten = (arr) => {\r\n\treturn arr.reduce((acc, cur) => acc.concat(cur), []);\r\n};\r\n\r\nexport const join = curry((delimiter, arr) => {\r\n\treturn arr.join(delimiter);\r\n});\r\n\r\n\r\nexport const inArray = (value, arr) => {\r\n\treturn arr.indexOf(value) > -1;\r\n};\r\n\r\nexport const arrayOrEmpty = (arr) => {\r\n\treturn arr || [];\r\n};\r\n\r\nexport const groupBy = curry((prop, arr) => {\r\n\treturn arr.reduce((acc, cur) => {\r\n\t\treturn {\r\n\t\t\t...acc,\r\n\t\t\t[cur[prop]]: cur,\r\n\t\t};\r\n\t}, {});\r\n});\r\n\r\nexport const emptyBySize = (size) => {\r\n\treturn Array.apply(null, Array(size));\r\n};\r\n\r\n","export const hasClass = (node, className) => {\r\n\tif (node.classList) return node.classList.contains(className);\r\n\r\n\treturn (` ${node.className.trim()} `).indexOf(` ${className} `) > -1;\r\n};\r\n\r\nexport const addClass = (node, className) => {\r\n\tif (node.classList) {\r\n\t\tnode.classList.add(className);\r\n\t} else if (!hasClass(node, className)) {\r\n\t\tnode.className = (`${node.className.trim()} ${className}`).trim();\r\n\t}\r\n\treturn node;\r\n};\r\n\r\nexport const removeClass = (node, className) => {\r\n\tif (node.classList) {\r\n\t\tnode.classList.remove(className);\r\n\t} else {\r\n\t\tnode.className = (` ${node.className.trim()} `).replace(` ${className} `, '').trim();\r\n\t}\r\n\treturn node;\r\n};\r\n\r\n\r\nexport const toggleClass = (node, className) => {\r\n\tif (node.classList) {\r\n\t\tnode.classList.toggle(className);\r\n\t\treturn node;\r\n\t}\r\n\t\r\n\treturn hasClass(node, className) ?\r\n\t\tremoveClass(node, className) :\r\n\t\taddClass(node, className);\r\n};\r\n\r\nexport const boolClass = (node, className, bool) => {\r\n\treturn (bool === true) ?\r\n\t\taddClass(node, className) :\r\n\t\tremoveClass(node, className);\r\n};\r\n","import { inArray, arrayOrEmpty } from './array';\r\nimport { is, isFunction } from './logic';\r\n\r\nexport const create = (target) => {\r\n\tlet subscribers = {};\r\n\r\n\tconst withEmmiter = {\r\n\t\t...target,\r\n\t\ton(type, fn) {\r\n\t\t\tlet arr = arrayOrEmpty(subscribers[type]);\r\n\r\n\t\t\tif (!inArray(fn, arr) && isFunction(fn)) {\r\n\t\t\t\tsubscribers[type] = [...arr, fn];\r\n\t\t\t}\r\n\r\n\t\t\treturn withEmmiter;\r\n\t\t},\r\n\t\tone(type, fn) {\r\n\t\t\tfn._event_once = true;\r\n\t\t\treturn withEmmiter.on(type, fn);\r\n\t\t},\r\n\t\toff(type, fn) {\r\n\t\t\tif (type == null && fn == null) {\r\n\t\t\t\tObject.keys(subscribers).forEach((type) => withEmmiter.off(type));\r\n\t\t\t}\r\n\r\n\t\t\tif (!type || !subscribers[type]) return withEmmiter;\r\n\r\n\t\t\tsubscribers[type] = subscribers[type].filter((fnI) => {\r\n\t\t\t\t// console.log(is(fn, fnI))\r\n\t\t\t\tif (!fn || is(fn, fnI)) {\r\n\t\t\t\t\tdelete fnI._event_once;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\tif (!subscribers[type].length) delete subscribers[type];\r\n\r\n\t\t\treturn withEmmiter;\r\n\t\t},\r\n\t\ttrigger(type, data, context = null) {\r\n\t\t\t(arrayOrEmpty(subscribers[type]))\r\n\t\t\t\t.filter((fn) => {\r\n\t\t\t\t\tfn.call(context, {type}, data);\r\n\t\t\t\t\treturn fn._event_once;\r\n\t\t\t\t})\r\n\t\t\t\t.forEach(withEmmiter.off.bind(withEmmiter, type));\r\n\r\n\t\t\treturn withEmmiter;\r\n\t\t},\r\n\t\tlog() {\r\n\t\t\tconsole.log(subscribers);\r\n\t\t\treturn withEmmiter;\r\n\t\t},\r\n\t};\r\n\r\n\treturn withEmmiter;\r\n};\r\n\r\nconst global = create({});\r\n\r\nexport const on = global.on;\r\nexport const one = global.one;\r\nexport const off = global.off;\r\nexport const trigger = global.trigger;\r\nexport const log = global.log;\r\n","import { query } from './selector';\r\n\r\nexport const delegate = (selector, callback) => (event) => {\r\n\tconst node = query(selector, event.currentTarget)\r\n\t\t\t.find((node) => node.contains(event.target));\r\n\r\n\tif (node != null) {\r\n\t\tcallback(event, node);\r\n\t}\r\n\r\n\treturn event;\r\n};\r\n\r\nexport const on = (node, type, handler) => {\r\n\tnode.addEventListener(type, handler, false);\r\n};\r\n\r\nexport const off = (node, type, handler) => {\r\n\tnode.removeEventListener(type, handler);\r\n};\r\n","export const curry = (f, ...args) => {\r\n\tif (args.length >= f.length) return f(...args);\r\n\treturn (...next) => curry(f.bind(f, ...args), ...next);\r\n};\r\n\r\nexport const pipe = (...fns) => x => fns.reduce((v, f) => f(v), x);\r\n\r\nexport const tap = curry((fn, arg) => {\r\n\tfn(arg);\r\n\treturn arg;\r\n});\r\n\r\nexport const invoke = curry((fnName, args, obj) => {\r\n\treturn obj[fnName].apply(obj, args);\r\n});\r\n\r\n\r\nexport const debounce = curry((wait, func) => {\r\n\tlet timeout;\r\n\treturn (...args) => {\r\n\t\tvar later = () => {\r\n\t\t\ttimeout = null;\r\n\t\t\tfunc(...args);\r\n\t\t};\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t};\r\n});\r\n","let cache = {};\r\n\r\nexport default (src) => {\r\n\tif (cache[src]) return cache[src];\r\n\r\n\tcache[src] = new Promise((resolve, reject) => {\r\n\t\tconst s = document.createElement('script');\r\n\t\ts.type = 'text/javascript';\r\n\t\ts.async = true;\r\n\t\ts.onload = resolve;\r\n\t\ts.onerror = reject;\r\n\t\ts.src = src;\r\n\t\tdocument.head.appendChild(s);\r\n\t});\r\n\r\n\treturn cache[src];\r\n};\r\n","import loadScript from \"./loadScript\";\n\nlet api = null;\n\nexport default () => {\n\tif (api) return api;\n\n\tapi = new Promise((resolve, reject) => {\n\t\tloadScript('https://player.vimeo.com/api/player.js').then(\n\t\t\t() => resolve(window.Vimeo)\n\t\t).catch(reject);\n\t});\n\n\treturn api;\n};\n","import loadScript from './loadScript';\r\n\r\nlet api = null;\r\n\r\n\r\nexport default () => {\r\n\tif (api) return api;\r\n\r\n\tapi = new Promise((resolve, reject) => {\r\n\r\n\t\twindow.onYouTubeIframeAPIReady = () => {\r\n\t\t\tresolve(window.YT);\r\n\t\t\tdelete window.onYouTubeIframeAPIReady;\r\n\t\t};\r\n\r\n\t\tloadScript('//www.youtube.com/player_api')\r\n\t\t\t.catch(reject);\r\n\t});\r\n\r\n\treturn api;\r\n};\r\n","export const is = (a, b) => {\r\n\treturn a === b ?\r\n\t(a !== 0 || 1 / a !== 1 / b) :\r\n\t(a !== a && b !== b);\r\n};\r\n\r\nexport const isFunction = (fn) => {\r\n\treturn is(typeof fn, 'function');\r\n};\r\n\r\nexport const isObject = (obj) => {\r\n\treturn obj === Object(obj);\r\n};\r\n\r\nexport const isNil = (x) => {\r\n\treturn x == null;\r\n};\r\n\r\nexport const isWindow = (node) => {\r\n\treturn node != null && node === node.window;\r\n}\r\n","export const remove = (node) => {\r\n\tnode.parentNode.removeChild(node);\r\n};\r\n\r\nexport const empty = (node) => {\r\n\tnode.textContent = '';\r\n};\r\n\r\nexport const wrap = (node, wrapper) => {\r\n\tnode.parentNode.insertBefore(wrapper, node);\r\n\twrapper.appendChild(node);\r\n};\r\n\r\nexport const unwrap = (node) => {\r\n\tconst wrapper = node.parentNode;\r\n\tconst parent = wrapper.parentNode;\r\n\tparent.insertBefore(node, wrapper);\r\n\tparent.removeChild(wrapper);\r\n};\r\n\r\nexport const append = (node, content) => {\r\n\tnode.appendChild(content);\r\n};\r\n\r\nexport const prepend = (node, content) => {\r\n\tnode.insertBefore(content, node.firstChild);\r\n};\r\n\r\nexport const before = (node, content) => {\r\n\tnode.parentNode.insertBefore(content, node);\r\n};\r\n\r\nexport const after = (node, content) => {\r\n\tnode.parentNode.insertBefore(content, node.nextSibling);\r\n};\r\n","import { clone } from './array';\r\n\r\nexport const byID = (selector, context = document) => {\r\n\treturn [context.getElementById(selector)];\r\n};\r\n\r\nexport const byName = (selector, context = document) => {\r\n\treturn clone(context.getElementsByName(selector));\r\n};\r\n\r\nexport const query = (selector, context = document) => {\r\n\treturn clone(context.querySelectorAll(selector));\r\n};\r\n\r\nexport const is = (node, selector) => {\r\n\treturn node.matches(selector);\r\n};\r\n","/* @license C3.js v0.7.20 | (c) C3 Team and other contributors | http://c3js.org/ */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.c3 = factory());\n}(this, (function () { 'use strict';\n\n function ChartInternal(api) {\r\n var $$ = this;\r\n // Note: This part will be replaced by rollup-plugin-modify\r\n // When bundling esm output. Beware of changing this line.\r\n // TODO: Maybe we should check that the modification by rollup-plugin-modify\r\n // is valid during unit tests.\r\n $$.d3 = window.d3\r\n ? window.d3\r\n : typeof require !== 'undefined'\r\n ? require('d3')\r\n : undefined;\r\n $$.api = api;\r\n $$.config = $$.getDefaultConfig();\r\n $$.data = {};\r\n $$.cache = {};\r\n $$.axes = {};\r\n }\n\n /**\r\n * The Chart class\r\n *\r\n * The methods of this class is the public APIs of the chart object.\r\n */\r\n function Chart(config) {\r\n this.internal = new ChartInternal(this);\r\n this.internal.loadConfig(config);\r\n this.internal.beforeInit(config);\r\n this.internal.init();\r\n this.internal.afterInit(config);\r\n (function bindThis(fn, target, argThis) {\r\n Object.keys(fn).forEach(function (key) {\r\n target[key] = fn[key].bind(argThis);\r\n if (Object.keys(fn[key]).length > 0) {\r\n bindThis(fn[key], target[key], argThis);\r\n }\r\n });\r\n })(Chart.prototype, this, this);\r\n }\n\n var asHalfPixel = function (n) {\r\n return Math.ceil(n) + 0.5;\r\n };\r\n var ceil10 = function (v) {\r\n return Math.ceil(v / 10) * 10;\r\n };\r\n var diffDomain = function (d) {\r\n return d[1] - d[0];\r\n };\r\n var getOption = function (options, key, defaultValue) {\r\n return isDefined(options[key]) ? options[key] : defaultValue;\r\n };\r\n var getPathBox = function (path) {\r\n var box = getBBox(path), items = [path.pathSegList.getItem(0), path.pathSegList.getItem(1)], minX = items[0].x, minY = Math.min(items[0].y, items[1].y);\r\n return { x: minX, y: minY, width: box.width, height: box.height };\r\n };\r\n var getBBox = function (element) {\r\n try {\r\n return element.getBBox();\r\n }\r\n catch (ignore) {\r\n // Firefox will throw an exception if getBBox() is called whereas the\r\n // element is rendered with display:none\r\n // See https://github.com/c3js/c3/issues/2692\r\n // The previous code was using `getBoundingClientRect` which was returning\r\n // everything at 0 in this case so let's reproduce this behavior here.\r\n return { x: 0, y: 0, width: 0, height: 0 };\r\n }\r\n };\r\n var hasValue = function (dict, value) {\r\n var found = false;\r\n Object.keys(dict).forEach(function (key) {\r\n if (dict[key] === value) {\r\n found = true;\r\n }\r\n });\r\n return found;\r\n };\r\n var isArray = function (o) {\r\n return Array.isArray(o);\r\n };\r\n var isDefined = function (v) {\r\n return typeof v !== 'undefined';\r\n };\r\n var isEmpty = function (o) {\r\n return (typeof o === 'undefined' ||\r\n o === null ||\r\n (isString(o) && o.length === 0) ||\r\n (typeof o === 'object' && Object.keys(o).length === 0));\r\n };\r\n var isFunction = function (o) {\r\n return typeof o === 'function';\r\n };\r\n var isNumber = function (o) {\r\n return typeof o === 'number';\r\n };\r\n var isString = function (o) {\r\n return typeof o === 'string';\r\n };\r\n var isUndefined = function (v) {\r\n return typeof v === 'undefined';\r\n };\r\n var isValue = function (v) {\r\n return v || v === 0;\r\n };\r\n var notEmpty = function (o) {\r\n return !isEmpty(o);\r\n };\r\n var sanitise = function (str) {\r\n return typeof str === 'string'\r\n ? str.replace(//g, '>')\r\n : str;\r\n };\r\n var flattenArray = function (arr) {\r\n return Array.isArray(arr) ? [].concat.apply([], arr) : [];\r\n };\r\n /**\r\n * Returns whether the point is within the given box.\r\n *\r\n * @param {Array} point An [x,y] coordinate\r\n * @param {Object} box An object with {x, y, width, height} keys\r\n * @param {Number} sensitivity An offset to ease check on very small boxes\r\n */\r\n var isWithinBox = function (point, box, sensitivity) {\r\n if (sensitivity === void 0) { sensitivity = 0; }\r\n var xStart = box.x - sensitivity;\r\n var xEnd = box.x + box.width + sensitivity;\r\n var yStart = box.y + box.height + sensitivity;\r\n var yEnd = box.y - sensitivity;\r\n return (xStart < point[0] && point[0] < xEnd && yEnd < point[1] && point[1] < yStart);\r\n };\r\n /**\r\n * Returns Internet Explorer version number (or false if no Internet Explorer used).\r\n *\r\n * @param string agent Optional parameter to specify user agent\r\n */\r\n var getIEVersion = function (agent) {\r\n // https://stackoverflow.com/questions/19999388/check-if-user-is-using-ie\r\n if (typeof agent === 'undefined') {\r\n agent = window.navigator.userAgent;\r\n }\r\n var pos = agent.indexOf('MSIE '); // up to IE10\r\n if (pos > 0) {\r\n return parseInt(agent.substring(pos + 5, agent.indexOf('.', pos)), 10);\r\n }\r\n pos = agent.indexOf('Trident/'); // IE11\r\n if (pos > 0) {\r\n pos = agent.indexOf('rv:');\r\n return parseInt(agent.substring(pos + 3, agent.indexOf('.', pos)), 10);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Returns whether the used browser is Internet Explorer.\r\n *\r\n * @param version Optional parameter to specify IE version\r\n */\r\n var isIE = function (version) {\r\n var ver = getIEVersion();\r\n if (typeof version === 'undefined') {\r\n return !!ver;\r\n }\r\n return version === ver;\r\n };\n\n function AxisInternal(component, params) {\r\n var internal = this;\r\n internal.component = component;\r\n internal.params = params || {};\r\n internal.d3 = component.d3;\r\n internal.scale = internal.d3.scaleLinear();\r\n internal.range;\r\n internal.orient = 'bottom';\r\n internal.innerTickSize = 6;\r\n internal.outerTickSize = this.params.withOuterTick ? 6 : 0;\r\n internal.tickPadding = 3;\r\n internal.tickValues = null;\r\n internal.tickFormat;\r\n internal.tickArguments;\r\n internal.tickOffset = 0;\r\n internal.tickCulling = true;\r\n internal.tickCentered;\r\n internal.tickTextCharSize;\r\n internal.tickTextRotate = internal.params.tickTextRotate;\r\n internal.tickLength;\r\n internal.axis = internal.generateAxis();\r\n }\r\n AxisInternal.prototype.axisX = function (selection, x, tickOffset) {\r\n selection.attr('transform', function (d) {\r\n return 'translate(' + Math.ceil(x(d) + tickOffset) + ', 0)';\r\n });\r\n };\r\n AxisInternal.prototype.axisY = function (selection, y) {\r\n selection.attr('transform', function (d) {\r\n return 'translate(0,' + Math.ceil(y(d)) + ')';\r\n });\r\n };\r\n AxisInternal.prototype.scaleExtent = function (domain) {\r\n var start = domain[0], stop = domain[domain.length - 1];\r\n return start < stop ? [start, stop] : [stop, start];\r\n };\r\n AxisInternal.prototype.generateTicks = function (scale) {\r\n var internal = this;\r\n var i, domain, ticks = [];\r\n if (scale.ticks) {\r\n return scale.ticks.apply(scale, internal.tickArguments);\r\n }\r\n domain = scale.domain();\r\n for (i = Math.ceil(domain[0]); i < domain[1]; i++) {\r\n ticks.push(i);\r\n }\r\n if (ticks.length > 0 && ticks[0] > 0) {\r\n ticks.unshift(ticks[0] - (ticks[1] - ticks[0]));\r\n }\r\n return ticks;\r\n };\r\n AxisInternal.prototype.copyScale = function () {\r\n var internal = this;\r\n var newScale = internal.scale.copy(), domain;\r\n if (internal.params.isCategory) {\r\n domain = internal.scale.domain();\r\n newScale.domain([domain[0], domain[1] - 1]);\r\n }\r\n return newScale;\r\n };\r\n AxisInternal.prototype.textFormatted = function (v) {\r\n var internal = this, formatted = internal.tickFormat ? internal.tickFormat(v) : v;\r\n return typeof formatted !== 'undefined' ? formatted : '';\r\n };\r\n AxisInternal.prototype.updateRange = function () {\r\n var internal = this;\r\n internal.range = internal.scale.rangeExtent\r\n ? internal.scale.rangeExtent()\r\n : internal.scaleExtent(internal.scale.range());\r\n return internal.range;\r\n };\r\n AxisInternal.prototype.updateTickTextCharSize = function (tick) {\r\n var internal = this;\r\n if (internal.tickTextCharSize) {\r\n return internal.tickTextCharSize;\r\n }\r\n var size = {\r\n h: 11.5,\r\n w: 5.5\r\n };\r\n tick\r\n .select('text')\r\n .text(function (d) {\r\n return internal.textFormatted(d);\r\n })\r\n .each(function (d) {\r\n var box = getBBox(this), text = internal.textFormatted(d), h = box.height, w = text ? box.width / text.length : undefined;\r\n if (h && w) {\r\n size.h = h;\r\n size.w = w;\r\n }\r\n })\r\n .text('');\r\n internal.tickTextCharSize = size;\r\n return size;\r\n };\r\n AxisInternal.prototype.isVertical = function () {\r\n return this.orient === 'left' || this.orient === 'right';\r\n };\r\n AxisInternal.prototype.tspanData = function (d, i, scale) {\r\n var internal = this;\r\n var splitted = internal.params.tickMultiline\r\n ? internal.splitTickText(d, scale)\r\n : [].concat(internal.textFormatted(d));\r\n if (internal.params.tickMultiline && internal.params.tickMultilineMax > 0) {\r\n splitted = internal.ellipsify(splitted, internal.params.tickMultilineMax);\r\n }\r\n return splitted.map(function (s) {\r\n return { index: i, splitted: s, length: splitted.length };\r\n });\r\n };\r\n AxisInternal.prototype.splitTickText = function (d, scale) {\r\n var internal = this, tickText = internal.textFormatted(d), maxWidth = internal.params.tickWidth, subtext, spaceIndex, textWidth, splitted = [];\r\n if (Object.prototype.toString.call(tickText) === '[object Array]') {\r\n return tickText;\r\n }\r\n if (!maxWidth || maxWidth <= 0) {\r\n maxWidth = internal.isVertical()\r\n ? 95\r\n : internal.params.isCategory\r\n ? Math.ceil(scale(1) - scale(0)) - 12\r\n : 110;\r\n }\r\n function split(splitted, text) {\r\n spaceIndex = undefined;\r\n for (var i = 1; i < text.length; i++) {\r\n if (text.charAt(i) === ' ') {\r\n spaceIndex = i;\r\n }\r\n subtext = text.substr(0, i + 1);\r\n textWidth = internal.tickTextCharSize.w * subtext.length;\r\n // if text width gets over tick width, split by space index or crrent index\r\n if (maxWidth < textWidth) {\r\n return split(splitted.concat(text.substr(0, spaceIndex ? spaceIndex : i)), text.slice(spaceIndex ? spaceIndex + 1 : i));\r\n }\r\n }\r\n return splitted.concat(text);\r\n }\r\n return split(splitted, tickText + '');\r\n };\r\n AxisInternal.prototype.ellipsify = function (splitted, max) {\r\n if (splitted.length <= max) {\r\n return splitted;\r\n }\r\n var ellipsified = splitted.slice(0, max);\r\n var remaining = 3;\r\n for (var i = max - 1; i >= 0; i--) {\r\n var available = ellipsified[i].length;\r\n ellipsified[i] = ellipsified[i]\r\n .substr(0, available - remaining)\r\n .padEnd(available, '.');\r\n remaining -= available;\r\n if (remaining <= 0) {\r\n break;\r\n }\r\n }\r\n return ellipsified;\r\n };\r\n AxisInternal.prototype.updateTickLength = function () {\r\n var internal = this;\r\n internal.tickLength =\r\n Math.max(internal.innerTickSize, 0) + internal.tickPadding;\r\n };\r\n AxisInternal.prototype.lineY2 = function (d) {\r\n var internal = this, tickPosition = internal.scale(d) + (internal.tickCentered ? 0 : internal.tickOffset);\r\n return internal.range[0] < tickPosition && tickPosition < internal.range[1]\r\n ? internal.innerTickSize\r\n : 0;\r\n };\r\n AxisInternal.prototype.textY = function () {\r\n var internal = this, rotate = internal.tickTextRotate;\r\n return rotate\r\n ? 11.5 - 2.5 * (rotate / 15) * (rotate > 0 ? 1 : -1)\r\n : internal.tickLength;\r\n };\r\n AxisInternal.prototype.textTransform = function () {\r\n var internal = this, rotate = internal.tickTextRotate;\r\n return rotate ? 'rotate(' + rotate + ')' : '';\r\n };\r\n AxisInternal.prototype.textTextAnchor = function () {\r\n var internal = this, rotate = internal.tickTextRotate;\r\n return rotate ? (rotate > 0 ? 'start' : 'end') : 'middle';\r\n };\r\n AxisInternal.prototype.tspanDx = function () {\r\n var internal = this, rotate = internal.tickTextRotate;\r\n return rotate ? 8 * Math.sin(Math.PI * (rotate / 180)) : 0;\r\n };\r\n AxisInternal.prototype.tspanDy = function (d, i) {\r\n var internal = this, dy = internal.tickTextCharSize.h;\r\n if (i === 0) {\r\n if (internal.isVertical()) {\r\n dy = -((d.length - 1) * (internal.tickTextCharSize.h / 2) - 3);\r\n }\r\n else {\r\n dy = '.71em';\r\n }\r\n }\r\n return dy;\r\n };\r\n AxisInternal.prototype.generateAxis = function () {\r\n var internal = this, d3 = internal.d3, params = internal.params;\r\n function axis(g, transition) {\r\n var self;\r\n g.each(function () {\r\n var g = (axis.g = d3.select(this));\r\n var scale0 = this.__chart__ || internal.scale, scale1 = (this.__chart__ = internal.copyScale());\r\n var ticksValues = internal.tickValues\r\n ? internal.tickValues\r\n : internal.generateTicks(scale1), ticks = g.selectAll('.tick').data(ticksValues, scale1), tickEnter = ticks\r\n .enter()\r\n .insert('g', '.domain')\r\n .attr('class', 'tick')\r\n .style('opacity', 1e-6), \r\n // MEMO: No exit transition. The reason is this transition affects max tick width calculation because old tick will be included in the ticks.\r\n tickExit = ticks.exit().remove(), tickUpdate = ticks.merge(tickEnter), tickTransform, tickX, tickY;\r\n if (params.isCategory) {\r\n internal.tickOffset = Math.ceil((scale1(1) - scale1(0)) / 2);\r\n tickX = internal.tickCentered ? 0 : internal.tickOffset;\r\n tickY = internal.tickCentered ? internal.tickOffset : 0;\r\n }\r\n else {\r\n internal.tickOffset = tickX = 0;\r\n }\r\n internal.updateRange();\r\n internal.updateTickLength();\r\n internal.updateTickTextCharSize(g.select('.tick'));\r\n var lineUpdate = tickUpdate\r\n .select('line')\r\n .merge(tickEnter.append('line')), textUpdate = tickUpdate.select('text').merge(tickEnter.append('text'));\r\n var tspans = tickUpdate\r\n .selectAll('text')\r\n .selectAll('tspan')\r\n .data(function (d, i) {\r\n return internal.tspanData(d, i, scale1);\r\n }), tspanEnter = tspans.enter().append('tspan'), tspanUpdate = tspanEnter.merge(tspans).text(function (d) {\r\n return d.splitted;\r\n });\r\n tspans.exit().remove();\r\n var path = g.selectAll('.domain').data([0]), pathUpdate = path\r\n .enter()\r\n .append('path')\r\n .merge(path)\r\n .attr('class', 'domain');\r\n // TODO: each attr should be one function and change its behavior by internal.orient, probably\r\n switch (internal.orient) {\r\n case 'bottom': {\r\n tickTransform = internal.axisX;\r\n lineUpdate\r\n .attr('x1', tickX)\r\n .attr('x2', tickX)\r\n .attr('y2', function (d, i) {\r\n return internal.lineY2(d, i);\r\n });\r\n textUpdate\r\n .attr('x', 0)\r\n .attr('y', function (d, i) {\r\n return internal.textY(d, i);\r\n })\r\n .attr('transform', function (d, i) {\r\n return internal.textTransform(d, i);\r\n })\r\n .style('text-anchor', function (d, i) {\r\n return internal.textTextAnchor(d, i);\r\n });\r\n tspanUpdate\r\n .attr('x', 0)\r\n .attr('dy', function (d, i) {\r\n return internal.tspanDy(d, i);\r\n })\r\n .attr('dx', function (d, i) {\r\n return internal.tspanDx(d, i);\r\n });\r\n pathUpdate.attr('d', 'M' +\r\n internal.range[0] +\r\n ',' +\r\n internal.outerTickSize +\r\n 'V0H' +\r\n internal.range[1] +\r\n 'V' +\r\n internal.outerTickSize);\r\n break;\r\n }\r\n case 'top': {\r\n // TODO: rotated tick text\r\n tickTransform = internal.axisX;\r\n lineUpdate\r\n .attr('x1', tickX)\r\n .attr('x2', tickX)\r\n .attr('y2', function (d, i) {\r\n return -1 * internal.lineY2(d, i);\r\n });\r\n textUpdate\r\n .attr('x', 0)\r\n .attr('y', function (d, i) {\r\n return (-1 * internal.textY(d, i) -\r\n (params.isCategory ? 2 : internal.tickLength - 2));\r\n })\r\n .attr('transform', function (d, i) {\r\n return internal.textTransform(d, i);\r\n })\r\n .style('text-anchor', function (d, i) {\r\n return internal.textTextAnchor(d, i);\r\n });\r\n tspanUpdate\r\n .attr('x', 0)\r\n .attr('dy', function (d, i) {\r\n return internal.tspanDy(d, i);\r\n })\r\n .attr('dx', function (d, i) {\r\n return internal.tspanDx(d, i);\r\n });\r\n pathUpdate.attr('d', 'M' +\r\n internal.range[0] +\r\n ',' +\r\n -internal.outerTickSize +\r\n 'V0H' +\r\n internal.range[1] +\r\n 'V' +\r\n -internal.outerTickSize);\r\n break;\r\n }\r\n case 'left': {\r\n tickTransform = internal.axisY;\r\n lineUpdate\r\n .attr('x2', -internal.innerTickSize)\r\n .attr('y1', tickY)\r\n .attr('y2', tickY);\r\n textUpdate\r\n .attr('x', -internal.tickLength)\r\n .attr('y', internal.tickOffset)\r\n .style('text-anchor', 'end');\r\n tspanUpdate\r\n .attr('x', -internal.tickLength)\r\n .attr('dy', function (d, i) {\r\n return internal.tspanDy(d, i);\r\n });\r\n pathUpdate.attr('d', 'M' +\r\n -internal.outerTickSize +\r\n ',' +\r\n internal.range[0] +\r\n 'H0V' +\r\n internal.range[1] +\r\n 'H' +\r\n -internal.outerTickSize);\r\n break;\r\n }\r\n case 'right': {\r\n tickTransform = internal.axisY;\r\n lineUpdate\r\n .attr('x2', internal.innerTickSize)\r\n .attr('y1', tickY)\r\n .attr('y2', tickY);\r\n textUpdate\r\n .attr('x', internal.tickLength)\r\n .attr('y', internal.tickOffset)\r\n .style('text-anchor', 'start');\r\n tspanUpdate.attr('x', internal.tickLength).attr('dy', function (d, i) {\r\n return internal.tspanDy(d, i);\r\n });\r\n pathUpdate.attr('d', 'M' +\r\n internal.outerTickSize +\r\n ',' +\r\n internal.range[0] +\r\n 'H0V' +\r\n internal.range[1] +\r\n 'H' +\r\n internal.outerTickSize);\r\n break;\r\n }\r\n }\r\n if (scale1.rangeBand) {\r\n var x = scale1, dx = x.rangeBand() / 2;\r\n scale0 = scale1 = function (d) {\r\n return x(d) + dx;\r\n };\r\n }\r\n else if (scale0.rangeBand) {\r\n scale0 = scale1;\r\n }\r\n else {\r\n tickExit.call(tickTransform, scale1, internal.tickOffset);\r\n }\r\n tickEnter.call(tickTransform, scale0, internal.tickOffset);\r\n self = (transition ? tickUpdate.transition(transition) : tickUpdate)\r\n .style('opacity', 1)\r\n .call(tickTransform, scale1, internal.tickOffset);\r\n });\r\n return self;\r\n }\r\n axis.scale = function (x) {\r\n if (!arguments.length) {\r\n return internal.scale;\r\n }\r\n internal.scale = x;\r\n return axis;\r\n };\r\n axis.orient = function (x) {\r\n if (!arguments.length) {\r\n return internal.orient;\r\n }\r\n internal.orient =\r\n x in { top: 1, right: 1, bottom: 1, left: 1 } ? x + '' : 'bottom';\r\n return axis;\r\n };\r\n axis.tickFormat = function (format) {\r\n if (!arguments.length) {\r\n return internal.tickFormat;\r\n }\r\n internal.tickFormat = format;\r\n return axis;\r\n };\r\n axis.tickCentered = function (isCentered) {\r\n if (!arguments.length) {\r\n return internal.tickCentered;\r\n }\r\n internal.tickCentered = isCentered;\r\n return axis;\r\n };\r\n axis.tickOffset = function () {\r\n return internal.tickOffset;\r\n };\r\n axis.tickInterval = function () {\r\n var interval, length;\r\n if (params.isCategory) {\r\n interval = internal.tickOffset * 2;\r\n }\r\n else {\r\n length =\r\n axis.g\r\n .select('path.domain')\r\n .node()\r\n .getTotalLength() -\r\n internal.outerTickSize * 2;\r\n interval = length / axis.g.selectAll('line').size();\r\n }\r\n return interval === Infinity ? 0 : interval;\r\n };\r\n axis.ticks = function () {\r\n if (!arguments.length) {\r\n return internal.tickArguments;\r\n }\r\n internal.tickArguments = arguments;\r\n return axis;\r\n };\r\n axis.tickCulling = function (culling) {\r\n if (!arguments.length) {\r\n return internal.tickCulling;\r\n }\r\n internal.tickCulling = culling;\r\n return axis;\r\n };\r\n axis.tickValues = function (x) {\r\n if (typeof x === 'function') {\r\n internal.tickValues = function () {\r\n return x(internal.scale.domain());\r\n };\r\n }\r\n else {\r\n if (!arguments.length) {\r\n return internal.tickValues;\r\n }\r\n internal.tickValues = x;\r\n }\r\n return axis;\r\n };\r\n return axis;\r\n };\n\n var CLASS = {\r\n target: 'c3-target',\r\n chart: 'c3-chart',\r\n chartLine: 'c3-chart-line',\r\n chartLines: 'c3-chart-lines',\r\n chartBar: 'c3-chart-bar',\r\n chartBars: 'c3-chart-bars',\r\n chartText: 'c3-chart-text',\r\n chartTexts: 'c3-chart-texts',\r\n chartArc: 'c3-chart-arc',\r\n chartArcs: 'c3-chart-arcs',\r\n chartArcsTitle: 'c3-chart-arcs-title',\r\n chartArcsBackground: 'c3-chart-arcs-background',\r\n chartArcsGaugeUnit: 'c3-chart-arcs-gauge-unit',\r\n chartArcsGaugeMax: 'c3-chart-arcs-gauge-max',\r\n chartArcsGaugeMin: 'c3-chart-arcs-gauge-min',\r\n selectedCircle: 'c3-selected-circle',\r\n selectedCircles: 'c3-selected-circles',\r\n eventRect: 'c3-event-rect',\r\n eventRects: 'c3-event-rects',\r\n eventRectsSingle: 'c3-event-rects-single',\r\n eventRectsMultiple: 'c3-event-rects-multiple',\r\n zoomRect: 'c3-zoom-rect',\r\n brush: 'c3-brush',\r\n dragZoom: 'c3-drag-zoom',\r\n focused: 'c3-focused',\r\n defocused: 'c3-defocused',\r\n region: 'c3-region',\r\n regions: 'c3-regions',\r\n title: 'c3-title',\r\n tooltipContainer: 'c3-tooltip-container',\r\n tooltip: 'c3-tooltip',\r\n tooltipName: 'c3-tooltip-name',\r\n shape: 'c3-shape',\r\n shapes: 'c3-shapes',\r\n line: 'c3-line',\r\n lines: 'c3-lines',\r\n bar: 'c3-bar',\r\n bars: 'c3-bars',\r\n circle: 'c3-circle',\r\n circles: 'c3-circles',\r\n arc: 'c3-arc',\r\n arcLabelLine: 'c3-arc-label-line',\r\n arcs: 'c3-arcs',\r\n area: 'c3-area',\r\n areas: 'c3-areas',\r\n empty: 'c3-empty',\r\n text: 'c3-text',\r\n texts: 'c3-texts',\r\n gaugeValue: 'c3-gauge-value',\r\n grid: 'c3-grid',\r\n gridLines: 'c3-grid-lines',\r\n xgrid: 'c3-xgrid',\r\n xgrids: 'c3-xgrids',\r\n xgridLine: 'c3-xgrid-line',\r\n xgridLines: 'c3-xgrid-lines',\r\n xgridFocus: 'c3-xgrid-focus',\r\n ygrid: 'c3-ygrid',\r\n ygrids: 'c3-ygrids',\r\n ygridLine: 'c3-ygrid-line',\r\n ygridLines: 'c3-ygrid-lines',\r\n colorScale: 'c3-colorscale',\r\n stanfordElements: 'c3-stanford-elements',\r\n stanfordLine: 'c3-stanford-line',\r\n stanfordLines: 'c3-stanford-lines',\r\n stanfordRegion: 'c3-stanford-region',\r\n stanfordRegions: 'c3-stanford-regions',\r\n stanfordText: 'c3-stanford-text',\r\n stanfordTexts: 'c3-stanford-texts',\r\n axis: 'c3-axis',\r\n axisX: 'c3-axis-x',\r\n axisXLabel: 'c3-axis-x-label',\r\n axisY: 'c3-axis-y',\r\n axisYLabel: 'c3-axis-y-label',\r\n axisY2: 'c3-axis-y2',\r\n axisY2Label: 'c3-axis-y2-label',\r\n legendBackground: 'c3-legend-background',\r\n legendItem: 'c3-legend-item',\r\n legendItemEvent: 'c3-legend-item-event',\r\n legendItemTile: 'c3-legend-item-tile',\r\n legendItemHidden: 'c3-legend-item-hidden',\r\n legendItemFocused: 'c3-legend-item-focused',\r\n dragarea: 'c3-dragarea',\r\n EXPANDED: '_expanded_',\r\n SELECTED: '_selected_',\r\n INCLUDED: '_included_'\r\n };\n\n var AxisClass = /** @class */ (function () {\r\n function AxisClass(owner) {\r\n this.owner = owner;\r\n this.d3 = owner.d3;\r\n this.internal = AxisInternal;\r\n }\r\n return AxisClass;\r\n }());\r\n var Axis = AxisClass;\r\n Axis.prototype.init = function init() {\r\n var $$ = this.owner, config = $$.config, main = $$.main;\r\n $$.axes.x = main\r\n .append('g')\r\n .attr('class', CLASS.axis + ' ' + CLASS.axisX)\r\n .attr('clip-path', config.axis_x_inner ? '' : $$.clipPathForXAxis)\r\n .attr('transform', $$.getTranslate('x'))\r\n .style('visibility', config.axis_x_show ? 'visible' : 'hidden');\r\n $$.axes.x\r\n .append('text')\r\n .attr('class', CLASS.axisXLabel)\r\n .attr('transform', config.axis_rotated ? 'rotate(-90)' : '')\r\n .style('text-anchor', this.textAnchorForXAxisLabel.bind(this));\r\n $$.axes.y = main\r\n .append('g')\r\n .attr('class', CLASS.axis + ' ' + CLASS.axisY)\r\n .attr('clip-path', config.axis_y_inner ? '' : $$.clipPathForYAxis)\r\n .attr('transform', $$.getTranslate('y'))\r\n .style('visibility', config.axis_y_show ? 'visible' : 'hidden');\r\n $$.axes.y\r\n .append('text')\r\n .attr('class', CLASS.axisYLabel)\r\n .attr('transform', config.axis_rotated ? '' : 'rotate(-90)')\r\n .style('text-anchor', this.textAnchorForYAxisLabel.bind(this));\r\n $$.axes.y2 = main\r\n .append('g')\r\n .attr('class', CLASS.axis + ' ' + CLASS.axisY2)\r\n // clip-path?\r\n .attr('transform', $$.getTranslate('y2'))\r\n .style('visibility', config.axis_y2_show ? 'visible' : 'hidden');\r\n $$.axes.y2\r\n .append('text')\r\n .attr('class', CLASS.axisY2Label)\r\n .attr('transform', config.axis_rotated ? '' : 'rotate(-90)')\r\n .style('text-anchor', this.textAnchorForY2AxisLabel.bind(this));\r\n };\r\n Axis.prototype.getXAxis = function getXAxis(scale, orient, tickFormat, tickValues, withOuterTick, withoutTransition, withoutRotateTickText) {\r\n var $$ = this.owner, config = $$.config, axisParams = {\r\n isCategory: $$.isCategorized(),\r\n withOuterTick: withOuterTick,\r\n tickMultiline: config.axis_x_tick_multiline,\r\n tickMultilineMax: config.axis_x_tick_multiline\r\n ? Number(config.axis_x_tick_multilineMax)\r\n : 0,\r\n tickWidth: config.axis_x_tick_width,\r\n tickTextRotate: withoutRotateTickText ? 0 : config.axis_x_tick_rotate,\r\n withoutTransition: withoutTransition\r\n }, axis = new this.internal(this, axisParams).axis.scale(scale).orient(orient);\r\n if ($$.isTimeSeries() && tickValues && typeof tickValues !== 'function') {\r\n tickValues = tickValues.map(function (v) {\r\n return $$.parseDate(v);\r\n });\r\n }\r\n // Set tick\r\n axis.tickFormat(tickFormat).tickValues(tickValues);\r\n if ($$.isCategorized()) {\r\n axis.tickCentered(config.axis_x_tick_centered);\r\n if (isEmpty(config.axis_x_tick_culling)) {\r\n config.axis_x_tick_culling = false;\r\n }\r\n }\r\n return axis;\r\n };\r\n Axis.prototype.updateXAxisTickValues = function updateXAxisTickValues(targets, axis) {\r\n var $$ = this.owner, config = $$.config, tickValues;\r\n if (config.axis_x_tick_fit || config.axis_x_tick_count) {\r\n tickValues = this.generateTickValues($$.mapTargetsToUniqueXs(targets), config.axis_x_tick_count, $$.isTimeSeries());\r\n }\r\n if (axis) {\r\n axis.tickValues(tickValues);\r\n }\r\n else {\r\n $$.xAxis.tickValues(tickValues);\r\n $$.subXAxis.tickValues(tickValues);\r\n }\r\n return tickValues;\r\n };\r\n Axis.prototype.getYAxis = function getYAxis(axisId, scale, orient, tickValues, withOuterTick, withoutTransition, withoutRotateTickText) {\r\n var $$ = this.owner;\r\n var config = $$.config;\r\n var tickFormat = config[\"axis_\" + axisId + \"_tick_format\"];\r\n if (!tickFormat && $$.isAxisNormalized(axisId)) {\r\n tickFormat = function (x) { return x + \"%\"; };\r\n }\r\n var axis = new this.internal(this, {\r\n withOuterTick: withOuterTick,\r\n withoutTransition: withoutTransition,\r\n tickTextRotate: withoutRotateTickText ? 0 : config.axis_y_tick_rotate\r\n }).axis\r\n .scale(scale)\r\n .orient(orient);\r\n if (tickFormat) {\r\n axis.tickFormat(tickFormat);\r\n }\r\n if ($$.isTimeSeriesY()) {\r\n axis.ticks(config.axis_y_tick_time_type, config.axis_y_tick_time_interval);\r\n }\r\n else {\r\n axis.tickValues(tickValues);\r\n }\r\n return axis;\r\n };\r\n Axis.prototype.getId = function getId(id) {\r\n var config = this.owner.config;\r\n return id in config.data_axes ? config.data_axes[id] : 'y';\r\n };\r\n Axis.prototype.getXAxisTickFormat = function getXAxisTickFormat() {\r\n // #2251 previously set any negative values to a whole number,\r\n // however both should be truncated according to the users format specification\r\n var $$ = this.owner, config = $$.config;\r\n var format = $$.isTimeSeries()\r\n ? $$.defaultAxisTimeFormat\r\n : $$.isCategorized()\r\n ? $$.categoryName\r\n : function (v) {\r\n return v;\r\n };\r\n if (config.axis_x_tick_format) {\r\n if (isFunction(config.axis_x_tick_format)) {\r\n format = config.axis_x_tick_format;\r\n }\r\n else if ($$.isTimeSeries()) {\r\n format = function (date) {\r\n return date ? $$.axisTimeFormat(config.axis_x_tick_format)(date) : '';\r\n };\r\n }\r\n }\r\n return isFunction(format)\r\n ? function (v) {\r\n return format.call($$, v);\r\n }\r\n : format;\r\n };\r\n Axis.prototype.getTickValues = function getTickValues(tickValues, axis) {\r\n return tickValues ? tickValues : axis ? axis.tickValues() : undefined;\r\n };\r\n Axis.prototype.getXAxisTickValues = function getXAxisTickValues() {\r\n return this.getTickValues(this.owner.config.axis_x_tick_values, this.owner.xAxis);\r\n };\r\n Axis.prototype.getYAxisTickValues = function getYAxisTickValues() {\r\n return this.getTickValues(this.owner.config.axis_y_tick_values, this.owner.yAxis);\r\n };\r\n Axis.prototype.getY2AxisTickValues = function getY2AxisTickValues() {\r\n return this.getTickValues(this.owner.config.axis_y2_tick_values, this.owner.y2Axis);\r\n };\r\n Axis.prototype.getLabelOptionByAxisId = function getLabelOptionByAxisId(axisId) {\r\n var $$ = this.owner, config = $$.config, option;\r\n if (axisId === 'y') {\r\n option = config.axis_y_label;\r\n }\r\n else if (axisId === 'y2') {\r\n option = config.axis_y2_label;\r\n }\r\n else if (axisId === 'x') {\r\n option = config.axis_x_label;\r\n }\r\n return option;\r\n };\r\n Axis.prototype.getLabelText = function getLabelText(axisId) {\r\n var option = this.getLabelOptionByAxisId(axisId);\r\n return isString(option) ? option : option ? option.text : null;\r\n };\r\n Axis.prototype.setLabelText = function setLabelText(axisId, text) {\r\n var $$ = this.owner, config = $$.config, option = this.getLabelOptionByAxisId(axisId);\r\n if (isString(option)) {\r\n if (axisId === 'y') {\r\n config.axis_y_label = text;\r\n }\r\n else if (axisId === 'y2') {\r\n config.axis_y2_label = text;\r\n }\r\n else if (axisId === 'x') {\r\n config.axis_x_label = text;\r\n }\r\n }\r\n else if (option) {\r\n option.text = text;\r\n }\r\n };\r\n Axis.prototype.getLabelPosition = function getLabelPosition(axisId, defaultPosition) {\r\n var option = this.getLabelOptionByAxisId(axisId), position = option && typeof option === 'object' && option.position\r\n ? option.position\r\n : defaultPosition;\r\n return {\r\n isInner: position.indexOf('inner') >= 0,\r\n isOuter: position.indexOf('outer') >= 0,\r\n isLeft: position.indexOf('left') >= 0,\r\n isCenter: position.indexOf('center') >= 0,\r\n isRight: position.indexOf('right') >= 0,\r\n isTop: position.indexOf('top') >= 0,\r\n isMiddle: position.indexOf('middle') >= 0,\r\n isBottom: position.indexOf('bottom') >= 0\r\n };\r\n };\r\n Axis.prototype.getXAxisLabelPosition = function getXAxisLabelPosition() {\r\n return this.getLabelPosition('x', this.owner.config.axis_rotated ? 'inner-top' : 'inner-right');\r\n };\r\n Axis.prototype.getYAxisLabelPosition = function getYAxisLabelPosition() {\r\n return this.getLabelPosition('y', this.owner.config.axis_rotated ? 'inner-right' : 'inner-top');\r\n };\r\n Axis.prototype.getY2AxisLabelPosition = function getY2AxisLabelPosition() {\r\n return this.getLabelPosition('y2', this.owner.config.axis_rotated ? 'inner-right' : 'inner-top');\r\n };\r\n Axis.prototype.getLabelPositionById = function getLabelPositionById(id) {\r\n return id === 'y2'\r\n ? this.getY2AxisLabelPosition()\r\n : id === 'y'\r\n ? this.getYAxisLabelPosition()\r\n : this.getXAxisLabelPosition();\r\n };\r\n Axis.prototype.textForXAxisLabel = function textForXAxisLabel() {\r\n return this.getLabelText('x');\r\n };\r\n Axis.prototype.textForYAxisLabel = function textForYAxisLabel() {\r\n return this.getLabelText('y');\r\n };\r\n Axis.prototype.textForY2AxisLabel = function textForY2AxisLabel() {\r\n return this.getLabelText('y2');\r\n };\r\n Axis.prototype.xForAxisLabel = function xForAxisLabel(forHorizontal, position) {\r\n var $$ = this.owner;\r\n if (forHorizontal) {\r\n return position.isLeft ? 0 : position.isCenter ? $$.width / 2 : $$.width;\r\n }\r\n else {\r\n return position.isBottom\r\n ? -$$.height\r\n : position.isMiddle\r\n ? -$$.height / 2\r\n : 0;\r\n }\r\n };\r\n Axis.prototype.dxForAxisLabel = function dxForAxisLabel(forHorizontal, position) {\r\n if (forHorizontal) {\r\n return position.isLeft ? '0.5em' : position.isRight ? '-0.5em' : '0';\r\n }\r\n else {\r\n return position.isTop ? '-0.5em' : position.isBottom ? '0.5em' : '0';\r\n }\r\n };\r\n Axis.prototype.textAnchorForAxisLabel = function textAnchorForAxisLabel(forHorizontal, position) {\r\n if (forHorizontal) {\r\n return position.isLeft ? 'start' : position.isCenter ? 'middle' : 'end';\r\n }\r\n else {\r\n return position.isBottom ? 'start' : position.isMiddle ? 'middle' : 'end';\r\n }\r\n };\r\n Axis.prototype.xForXAxisLabel = function xForXAxisLabel() {\r\n return this.xForAxisLabel(!this.owner.config.axis_rotated, this.getXAxisLabelPosition());\r\n };\r\n Axis.prototype.xForYAxisLabel = function xForYAxisLabel() {\r\n return this.xForAxisLabel(this.owner.config.axis_rotated, this.getYAxisLabelPosition());\r\n };\r\n Axis.prototype.xForY2AxisLabel = function xForY2AxisLabel() {\r\n return this.xForAxisLabel(this.owner.config.axis_rotated, this.getY2AxisLabelPosition());\r\n };\r\n Axis.prototype.dxForXAxisLabel = function dxForXAxisLabel() {\r\n return this.dxForAxisLabel(!this.owner.config.axis_rotated, this.getXAxisLabelPosition());\r\n };\r\n Axis.prototype.dxForYAxisLabel = function dxForYAxisLabel() {\r\n return this.dxForAxisLabel(this.owner.config.axis_rotated, this.getYAxisLabelPosition());\r\n };\r\n Axis.prototype.dxForY2AxisLabel = function dxForY2AxisLabel() {\r\n return this.dxForAxisLabel(this.owner.config.axis_rotated, this.getY2AxisLabelPosition());\r\n };\r\n Axis.prototype.dyForXAxisLabel = function dyForXAxisLabel() {\r\n var $$ = this.owner, config = $$.config, position = this.getXAxisLabelPosition();\r\n if (config.axis_rotated) {\r\n return position.isInner\r\n ? '1.2em'\r\n : -25 - ($$.config.axis_x_inner ? 0 : this.getMaxTickWidth('x'));\r\n }\r\n else {\r\n return position.isInner ? '-0.5em' : $$.getHorizontalAxisHeight('x') - 10;\r\n }\r\n };\r\n Axis.prototype.dyForYAxisLabel = function dyForYAxisLabel() {\r\n var $$ = this.owner, position = this.getYAxisLabelPosition();\r\n if ($$.config.axis_rotated) {\r\n return position.isInner ? '-0.5em' : '3em';\r\n }\r\n else {\r\n return position.isInner\r\n ? '1.2em'\r\n : -10 - ($$.config.axis_y_inner ? 0 : this.getMaxTickWidth('y') + 10);\r\n }\r\n };\r\n Axis.prototype.dyForY2AxisLabel = function dyForY2AxisLabel() {\r\n var $$ = this.owner, position = this.getY2AxisLabelPosition();\r\n if ($$.config.axis_rotated) {\r\n return position.isInner ? '1.2em' : '-2.2em';\r\n }\r\n else {\r\n return position.isInner\r\n ? '-0.5em'\r\n : 15 + ($$.config.axis_y2_inner ? 0 : this.getMaxTickWidth('y2') + 15);\r\n }\r\n };\r\n Axis.prototype.textAnchorForXAxisLabel = function textAnchorForXAxisLabel() {\r\n var $$ = this.owner;\r\n return this.textAnchorForAxisLabel(!$$.config.axis_rotated, this.getXAxisLabelPosition());\r\n };\r\n Axis.prototype.textAnchorForYAxisLabel = function textAnchorForYAxisLabel() {\r\n var $$ = this.owner;\r\n return this.textAnchorForAxisLabel($$.config.axis_rotated, this.getYAxisLabelPosition());\r\n };\r\n Axis.prototype.textAnchorForY2AxisLabel = function textAnchorForY2AxisLabel() {\r\n var $$ = this.owner;\r\n return this.textAnchorForAxisLabel($$.config.axis_rotated, this.getY2AxisLabelPosition());\r\n };\r\n Axis.prototype.getMaxTickWidth = function getMaxTickWidth(id, withoutRecompute) {\r\n var $$ = this.owner, maxWidth = 0, targetsToShow, scale, axis, dummy, svg;\r\n if (withoutRecompute && $$.currentMaxTickWidths[id]) {\r\n return $$.currentMaxTickWidths[id];\r\n }\r\n if ($$.svg) {\r\n targetsToShow = $$.filterTargetsToShow($$.data.targets);\r\n if (id === 'y') {\r\n scale = $$.y.copy().domain($$.getYDomain(targetsToShow, 'y'));\r\n axis = this.getYAxis(id, scale, $$.yOrient, $$.yAxisTickValues, false, true, true);\r\n }\r\n else if (id === 'y2') {\r\n scale = $$.y2.copy().domain($$.getYDomain(targetsToShow, 'y2'));\r\n axis = this.getYAxis(id, scale, $$.y2Orient, $$.y2AxisTickValues, false, true, true);\r\n }\r\n else {\r\n scale = $$.x.copy().domain($$.getXDomain(targetsToShow));\r\n axis = this.getXAxis(scale, $$.xOrient, $$.xAxisTickFormat, $$.xAxisTickValues, false, true, true);\r\n this.updateXAxisTickValues(targetsToShow, axis);\r\n }\r\n dummy = $$.d3\r\n .select('body')\r\n .append('div')\r\n .classed('c3', true);\r\n (svg = dummy\r\n .append('svg')\r\n .style('visibility', 'hidden')\r\n .style('position', 'fixed')\r\n .style('top', 0)\r\n .style('left', 0)),\r\n svg\r\n .append('g')\r\n .call(axis)\r\n .each(function () {\r\n $$.d3\r\n .select(this)\r\n .selectAll('text')\r\n .each(function () {\r\n var box = getBBox(this);\r\n if (maxWidth < box.width) {\r\n maxWidth = box.width;\r\n }\r\n });\r\n dummy.remove();\r\n });\r\n }\r\n $$.currentMaxTickWidths[id] =\r\n maxWidth <= 0 ? $$.currentMaxTickWidths[id] : maxWidth;\r\n return $$.currentMaxTickWidths[id];\r\n };\r\n Axis.prototype.updateLabels = function updateLabels(withTransition) {\r\n var $$ = this.owner;\r\n var axisXLabel = $$.main.select('.' + CLASS.axisX + ' .' + CLASS.axisXLabel), axisYLabel = $$.main.select('.' + CLASS.axisY + ' .' + CLASS.axisYLabel), axisY2Label = $$.main.select('.' + CLASS.axisY2 + ' .' + CLASS.axisY2Label);\r\n (withTransition ? axisXLabel.transition() : axisXLabel)\r\n .attr('x', this.xForXAxisLabel.bind(this))\r\n .attr('dx', this.dxForXAxisLabel.bind(this))\r\n .attr('dy', this.dyForXAxisLabel.bind(this))\r\n .text(this.textForXAxisLabel.bind(this));\r\n (withTransition ? axisYLabel.transition() : axisYLabel)\r\n .attr('x', this.xForYAxisLabel.bind(this))\r\n .attr('dx', this.dxForYAxisLabel.bind(this))\r\n .attr('dy', this.dyForYAxisLabel.bind(this))\r\n .text(this.textForYAxisLabel.bind(this));\r\n (withTransition ? axisY2Label.transition() : axisY2Label)\r\n .attr('x', this.xForY2AxisLabel.bind(this))\r\n .attr('dx', this.dxForY2AxisLabel.bind(this))\r\n .attr('dy', this.dyForY2AxisLabel.bind(this))\r\n .text(this.textForY2AxisLabel.bind(this));\r\n };\r\n Axis.prototype.getPadding = function getPadding(padding, key, defaultValue, domainLength) {\r\n var p = typeof padding === 'number' ? padding : padding[key];\r\n if (!isValue(p)) {\r\n return defaultValue;\r\n }\r\n if (padding.unit === 'ratio') {\r\n return padding[key] * domainLength;\r\n }\r\n // assume padding is pixels if unit is not specified\r\n return this.convertPixelsToAxisPadding(p, domainLength);\r\n };\r\n Axis.prototype.convertPixelsToAxisPadding = function convertPixelsToAxisPadding(pixels, domainLength) {\r\n var $$ = this.owner, length = $$.config.axis_rotated ? $$.width : $$.height;\r\n return domainLength * (pixels / length);\r\n };\r\n Axis.prototype.generateTickValues = function generateTickValues(values, tickCount, forTimeSeries) {\r\n var tickValues = values, targetCount, start, end, count, interval, i, tickValue;\r\n if (tickCount) {\r\n targetCount = isFunction(tickCount) ? tickCount() : tickCount;\r\n // compute ticks according to tickCount\r\n if (targetCount === 1) {\r\n tickValues = [values[0]];\r\n }\r\n else if (targetCount === 2) {\r\n tickValues = [values[0], values[values.length - 1]];\r\n }\r\n else if (targetCount > 2) {\r\n count = targetCount - 2;\r\n start = values[0];\r\n end = values[values.length - 1];\r\n interval = (end - start) / (count + 1);\r\n // re-construct unique values\r\n tickValues = [start];\r\n for (i = 0; i < count; i++) {\r\n tickValue = +start + interval * (i + 1);\r\n tickValues.push(forTimeSeries ? new Date(tickValue) : tickValue);\r\n }\r\n tickValues.push(end);\r\n }\r\n }\r\n if (!forTimeSeries) {\r\n tickValues = tickValues.sort(function (a, b) {\r\n return a - b;\r\n });\r\n }\r\n return tickValues;\r\n };\r\n Axis.prototype.generateTransitions = function generateTransitions(duration) {\r\n var $$ = this.owner, axes = $$.axes;\r\n return {\r\n axisX: duration ? axes.x.transition().duration(duration) : axes.x,\r\n axisY: duration ? axes.y.transition().duration(duration) : axes.y,\r\n axisY2: duration ? axes.y2.transition().duration(duration) : axes.y2,\r\n axisSubX: duration ? axes.subx.transition().duration(duration) : axes.subx\r\n };\r\n };\r\n Axis.prototype.redraw = function redraw(duration, isHidden) {\r\n var $$ = this.owner, transition = duration ? $$.d3.transition().duration(duration) : null;\r\n $$.axes.x.style('opacity', isHidden ? 0 : 1).call($$.xAxis, transition);\r\n $$.axes.y.style('opacity', isHidden ? 0 : 1).call($$.yAxis, transition);\r\n $$.axes.y2.style('opacity', isHidden ? 0 : 1).call($$.y2Axis, transition);\r\n $$.axes.subx.style('opacity', isHidden ? 0 : 1).call($$.subXAxis, transition);\r\n };\n\n var c3 = {\r\n version: '0.7.20',\r\n chart: {\r\n fn: Chart.prototype,\r\n internal: {\r\n fn: ChartInternal.prototype,\r\n axis: {\r\n fn: AxisClass.prototype,\r\n internal: {\r\n fn: AxisInternal.prototype\r\n }\r\n }\r\n }\r\n },\r\n generate: function (config) {\r\n return new Chart(config);\r\n }\r\n };\r\n ChartInternal.prototype.beforeInit = function () {\r\n // can do something\r\n };\r\n ChartInternal.prototype.afterInit = function () {\r\n // can do something\r\n };\r\n ChartInternal.prototype.init = function () {\r\n var $$ = this, config = $$.config;\r\n $$.initParams();\r\n if (config.data_url) {\r\n $$.convertUrlToData(config.data_url, config.data_mimeType, config.data_headers, config.data_keys, $$.initWithData);\r\n }\r\n else if (config.data_json) {\r\n $$.initWithData($$.convertJsonToData(config.data_json, config.data_keys));\r\n }\r\n else if (config.data_rows) {\r\n $$.initWithData($$.convertRowsToData(config.data_rows));\r\n }\r\n else if (config.data_columns) {\r\n $$.initWithData($$.convertColumnsToData(config.data_columns));\r\n }\r\n else {\r\n throw Error('url or json or rows or columns is required.');\r\n }\r\n };\r\n ChartInternal.prototype.initParams = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config;\r\n // MEMO: clipId needs to be unique because it conflicts when multiple charts exist\r\n $$.clipId = 'c3-' + new Date().valueOf() + '-clip';\r\n $$.clipIdForXAxis = $$.clipId + '-xaxis';\r\n $$.clipIdForYAxis = $$.clipId + '-yaxis';\r\n $$.clipIdForGrid = $$.clipId + '-grid';\r\n $$.clipIdForSubchart = $$.clipId + '-subchart';\r\n $$.clipPath = $$.getClipPath($$.clipId);\r\n $$.clipPathForXAxis = $$.getClipPath($$.clipIdForXAxis);\r\n $$.clipPathForYAxis = $$.getClipPath($$.clipIdForYAxis);\r\n $$.clipPathForGrid = $$.getClipPath($$.clipIdForGrid);\r\n $$.clipPathForSubchart = $$.getClipPath($$.clipIdForSubchart);\r\n $$.dragStart = null;\r\n $$.dragging = false;\r\n $$.flowing = false;\r\n $$.cancelClick = false;\r\n $$.mouseover = undefined;\r\n $$.transiting = false;\r\n $$.color = $$.generateColor();\r\n $$.levelColor = $$.generateLevelColor();\r\n $$.dataTimeParse = (config.data_xLocaltime ? d3.timeParse : d3.utcParse)($$.config.data_xFormat);\r\n $$.axisTimeFormat = config.axis_x_localtime ? d3.timeFormat : d3.utcFormat;\r\n $$.defaultAxisTimeFormat = function (date) {\r\n if (date.getMilliseconds()) {\r\n return d3.timeFormat('.%L')(date);\r\n }\r\n if (date.getSeconds()) {\r\n return d3.timeFormat(':%S')(date);\r\n }\r\n if (date.getMinutes()) {\r\n return d3.timeFormat('%I:%M')(date);\r\n }\r\n if (date.getHours()) {\r\n return d3.timeFormat('%I %p')(date);\r\n }\r\n if (date.getDay() && date.getDate() !== 1) {\r\n return d3.timeFormat('%-m/%-d')(date);\r\n }\r\n if (date.getDate() !== 1) {\r\n return d3.timeFormat('%-m/%-d')(date);\r\n }\r\n if (date.getMonth()) {\r\n return d3.timeFormat('%-m/%-d')(date);\r\n }\r\n return d3.timeFormat('%Y/%-m/%-d')(date);\r\n };\r\n $$.hiddenTargetIds = [];\r\n $$.hiddenLegendIds = [];\r\n $$.focusedTargetIds = [];\r\n $$.defocusedTargetIds = [];\r\n $$.xOrient = config.axis_rotated\r\n ? config.axis_x_inner\r\n ? 'right'\r\n : 'left'\r\n : config.axis_x_inner\r\n ? 'top'\r\n : 'bottom';\r\n $$.yOrient = config.axis_rotated\r\n ? config.axis_y_inner\r\n ? 'top'\r\n : 'bottom'\r\n : config.axis_y_inner\r\n ? 'right'\r\n : 'left';\r\n $$.y2Orient = config.axis_rotated\r\n ? config.axis_y2_inner\r\n ? 'bottom'\r\n : 'top'\r\n : config.axis_y2_inner\r\n ? 'left'\r\n : 'right';\r\n $$.subXOrient = config.axis_rotated ? 'left' : 'bottom';\r\n $$.isLegendRight = config.legend_position === 'right';\r\n $$.isLegendInset = config.legend_position === 'inset';\r\n $$.isLegendTop =\r\n config.legend_inset_anchor === 'top-left' ||\r\n config.legend_inset_anchor === 'top-right';\r\n $$.isLegendLeft =\r\n config.legend_inset_anchor === 'top-left' ||\r\n config.legend_inset_anchor === 'bottom-left';\r\n $$.legendStep = 0;\r\n $$.legendItemWidth = 0;\r\n $$.legendItemHeight = 0;\r\n $$.currentMaxTickWidths = {\r\n x: 0,\r\n y: 0,\r\n y2: 0\r\n };\r\n $$.rotated_padding_left = 30;\r\n $$.rotated_padding_right = config.axis_rotated && !config.axis_x_show ? 0 : 30;\r\n $$.rotated_padding_top = 5;\r\n $$.withoutFadeIn = {};\r\n $$.intervalForObserveInserted = undefined;\r\n $$.axes.subx = d3.selectAll([]); // needs when excluding subchart.js\r\n };\r\n ChartInternal.prototype.initChartElements = function () {\r\n if (this.initBar) {\r\n this.initBar();\r\n }\r\n if (this.initLine) {\r\n this.initLine();\r\n }\r\n if (this.initArc) {\r\n this.initArc();\r\n }\r\n if (this.initGauge) {\r\n this.initGauge();\r\n }\r\n if (this.initText) {\r\n this.initText();\r\n }\r\n };\r\n ChartInternal.prototype.initWithData = function (data) {\r\n var $$ = this, d3 = $$.d3, config = $$.config;\r\n var defs, main, binding = true;\r\n $$.axis = new AxisClass($$);\r\n if (!config.bindto) {\r\n $$.selectChart = d3.selectAll([]);\r\n }\r\n else if (typeof config.bindto.node === 'function') {\r\n $$.selectChart = config.bindto;\r\n }\r\n else {\r\n $$.selectChart = d3.select(config.bindto);\r\n }\r\n if ($$.selectChart.empty()) {\r\n $$.selectChart = d3\r\n .select(document.createElement('div'))\r\n .style('opacity', 0);\r\n $$.observeInserted($$.selectChart);\r\n binding = false;\r\n }\r\n $$.selectChart.html('').classed('c3', true);\r\n // Init data as targets\r\n $$.data.xs = {};\r\n $$.data.targets = $$.convertDataToTargets(data);\r\n if (config.data_filter) {\r\n $$.data.targets = $$.data.targets.filter(config.data_filter);\r\n }\r\n // Set targets to hide if needed\r\n if (config.data_hide) {\r\n $$.addHiddenTargetIds(config.data_hide === true\r\n ? $$.mapToIds($$.data.targets)\r\n : config.data_hide);\r\n }\r\n if (config.legend_hide) {\r\n $$.addHiddenLegendIds(config.legend_hide === true\r\n ? $$.mapToIds($$.data.targets)\r\n : config.legend_hide);\r\n }\r\n if ($$.isStanfordGraphType()) {\r\n $$.initStanfordData();\r\n }\r\n // Init sizes and scales\r\n $$.updateSizes();\r\n $$.updateScales();\r\n // Set domains for each scale\r\n $$.x.domain(d3.extent($$.getXDomain($$.data.targets)));\r\n $$.y.domain($$.getYDomain($$.data.targets, 'y'));\r\n $$.y2.domain($$.getYDomain($$.data.targets, 'y2'));\r\n $$.subX.domain($$.x.domain());\r\n $$.subY.domain($$.y.domain());\r\n $$.subY2.domain($$.y2.domain());\r\n // Save original x domain for zoom update\r\n $$.orgXDomain = $$.x.domain();\r\n /*-- Basic Elements --*/\r\n // Define svgs\r\n $$.svg = $$.selectChart\r\n .append('svg')\r\n .style('overflow', 'hidden')\r\n .on('mouseenter', function () {\r\n return config.onmouseover.call($$);\r\n })\r\n .on('mouseleave', function () {\r\n return config.onmouseout.call($$);\r\n });\r\n if ($$.config.svg_classname) {\r\n $$.svg.attr('class', $$.config.svg_classname);\r\n }\r\n // Define defs\r\n defs = $$.svg.append('defs');\r\n $$.clipChart = $$.appendClip(defs, $$.clipId);\r\n $$.clipXAxis = $$.appendClip(defs, $$.clipIdForXAxis);\r\n $$.clipYAxis = $$.appendClip(defs, $$.clipIdForYAxis);\r\n $$.clipGrid = $$.appendClip(defs, $$.clipIdForGrid);\r\n $$.clipSubchart = $$.appendClip(defs, $$.clipIdForSubchart);\r\n $$.updateSvgSize();\r\n // Define regions\r\n main = $$.main = $$.svg.append('g').attr('transform', $$.getTranslate('main'));\r\n if ($$.initPie) {\r\n $$.initPie();\r\n }\r\n if ($$.initDragZoom) {\r\n $$.initDragZoom();\r\n }\r\n if (config.subchart_show && $$.initSubchart) {\r\n $$.initSubchart();\r\n }\r\n if ($$.initTooltip) {\r\n $$.initTooltip();\r\n }\r\n if ($$.initLegend) {\r\n $$.initLegend();\r\n }\r\n if ($$.initTitle) {\r\n $$.initTitle();\r\n }\r\n if ($$.initZoom) {\r\n $$.initZoom();\r\n }\r\n if ($$.isStanfordGraphType()) {\r\n $$.drawColorScale();\r\n }\r\n // Update selection based on size and scale\r\n // TODO: currently this must be called after initLegend because of update of sizes, but it should be done in initSubchart.\r\n if (config.subchart_show && $$.initSubchartBrush) {\r\n $$.initSubchartBrush();\r\n }\r\n /*-- Main Region --*/\r\n // text when empty\r\n main\r\n .append('text')\r\n .attr('class', CLASS.text + ' ' + CLASS.empty)\r\n .attr('text-anchor', 'middle') // horizontal centering of text at x position in all browsers.\r\n .attr('dominant-baseline', 'middle'); // vertical centering of text at y position in all browsers, except IE.\r\n // Regions\r\n $$.initRegion();\r\n // Grids\r\n $$.initGrid();\r\n // Define g for chart area\r\n main\r\n .append('g')\r\n .attr('clip-path', $$.clipPath)\r\n .attr('class', CLASS.chart);\r\n // Grid lines\r\n if (config.grid_lines_front) {\r\n $$.initGridLines();\r\n }\r\n $$.initStanfordElements();\r\n // Cover whole with rects for events\r\n $$.initEventRect();\r\n // Define g for chart\r\n $$.initChartElements();\r\n // Add Axis\r\n $$.axis.init();\r\n // Set targets\r\n $$.updateTargets($$.data.targets);\r\n // Set default extent if defined\r\n if (config.axis_x_selection) {\r\n $$.brush.selectionAsValue($$.getDefaultSelection());\r\n }\r\n // Draw with targets\r\n if (binding) {\r\n $$.updateDimension();\r\n $$.config.oninit.call($$);\r\n $$.redraw({\r\n withTransition: false,\r\n withTransform: true,\r\n withUpdateXDomain: true,\r\n withUpdateOrgXDomain: true,\r\n withTransitionForAxis: false\r\n });\r\n }\r\n // Bind to resize event\r\n $$.bindResize();\r\n // Bind to window focus event\r\n $$.bindWindowFocus();\r\n // export element of the chart\r\n $$.api.element = $$.selectChart.node();\r\n };\r\n ChartInternal.prototype.smoothLines = function (el, type) {\r\n var $$ = this;\r\n if (type === 'grid') {\r\n el.each(function () {\r\n var g = $$.d3.select(this), x1 = g.attr('x1'), x2 = g.attr('x2'), y1 = g.attr('y1'), y2 = g.attr('y2');\r\n g.attr({\r\n x1: Math.ceil(x1),\r\n x2: Math.ceil(x2),\r\n y1: Math.ceil(y1),\r\n y2: Math.ceil(y2)\r\n });\r\n });\r\n }\r\n };\r\n ChartInternal.prototype.updateSizes = function () {\r\n var $$ = this, config = $$.config;\r\n var legendHeight = $$.legend ? $$.getLegendHeight() : 0, legendWidth = $$.legend ? $$.getLegendWidth() : 0, legendHeightForBottom = $$.isLegendRight || $$.isLegendInset ? 0 : legendHeight, hasArc = $$.hasArcType(), xAxisHeight = config.axis_rotated || hasArc ? 0 : $$.getHorizontalAxisHeight('x'), subchartXAxisHeight = config.axis_rotated || hasArc ? 0 : $$.getHorizontalAxisHeight('x', true), subchartHeight = config.subchart_show && !hasArc\r\n ? config.subchart_size_height + subchartXAxisHeight\r\n : 0;\r\n $$.currentWidth = $$.getCurrentWidth();\r\n $$.currentHeight = $$.getCurrentHeight();\r\n // for main\r\n $$.margin = config.axis_rotated\r\n ? {\r\n top: $$.getHorizontalAxisHeight('y2') + $$.getCurrentPaddingTop(),\r\n right: hasArc ? 0 : $$.getCurrentPaddingRight(),\r\n bottom: $$.getHorizontalAxisHeight('y') +\r\n legendHeightForBottom +\r\n $$.getCurrentPaddingBottom(),\r\n left: subchartHeight + (hasArc ? 0 : $$.getCurrentPaddingLeft())\r\n }\r\n : {\r\n top: 4 + $$.getCurrentPaddingTop(),\r\n right: hasArc ? 0 : $$.getCurrentPaddingRight(),\r\n bottom: xAxisHeight +\r\n subchartHeight +\r\n legendHeightForBottom +\r\n $$.getCurrentPaddingBottom(),\r\n left: hasArc ? 0 : $$.getCurrentPaddingLeft()\r\n };\r\n // for subchart\r\n $$.margin2 = config.axis_rotated\r\n ? {\r\n top: $$.margin.top,\r\n right: NaN,\r\n bottom: 20 + legendHeightForBottom,\r\n left: $$.rotated_padding_left\r\n }\r\n : {\r\n top: $$.currentHeight - subchartHeight - legendHeightForBottom,\r\n right: NaN,\r\n bottom: subchartXAxisHeight + legendHeightForBottom,\r\n left: $$.margin.left\r\n };\r\n // for legend\r\n $$.margin3 = {\r\n top: 0,\r\n right: NaN,\r\n bottom: 0,\r\n left: 0\r\n };\r\n if ($$.updateSizeForLegend) {\r\n $$.updateSizeForLegend(legendHeight, legendWidth);\r\n }\r\n $$.width = $$.currentWidth - $$.margin.left - $$.margin.right;\r\n $$.height = $$.currentHeight - $$.margin.top - $$.margin.bottom;\r\n if ($$.width < 0) {\r\n $$.width = 0;\r\n }\r\n if ($$.height < 0) {\r\n $$.height = 0;\r\n }\r\n $$.width2 = config.axis_rotated\r\n ? $$.margin.left - $$.rotated_padding_left - $$.rotated_padding_right\r\n : $$.width;\r\n $$.height2 = config.axis_rotated\r\n ? $$.height\r\n : $$.currentHeight - $$.margin2.top - $$.margin2.bottom;\r\n if ($$.width2 < 0) {\r\n $$.width2 = 0;\r\n }\r\n if ($$.height2 < 0) {\r\n $$.height2 = 0;\r\n }\r\n // for arc\r\n $$.arcWidth = $$.width - ($$.isLegendRight ? legendWidth + 10 : 0);\r\n $$.arcHeight = $$.height - ($$.isLegendRight ? 0 : 10);\r\n if ($$.hasType('gauge') && !config.gauge_fullCircle) {\r\n $$.arcHeight += $$.height - $$.getGaugeLabelHeight();\r\n }\r\n if ($$.updateRadius) {\r\n $$.updateRadius();\r\n }\r\n if ($$.isLegendRight && hasArc) {\r\n $$.margin3.left = $$.arcWidth / 2 + $$.radiusExpanded * 1.1;\r\n }\r\n };\r\n ChartInternal.prototype.updateTargets = function (targets) {\r\n var $$ = this, config = $$.config;\r\n /*-- Main --*/\r\n //-- Text --//\r\n $$.updateTargetsForText(targets);\r\n //-- Bar --//\r\n $$.updateTargetsForBar(targets);\r\n //-- Line --//\r\n $$.updateTargetsForLine(targets);\r\n //-- Arc --//\r\n if ($$.hasArcType() && $$.updateTargetsForArc) {\r\n $$.updateTargetsForArc(targets);\r\n }\r\n /*-- Sub --*/\r\n if (config.subchart_show && $$.updateTargetsForSubchart) {\r\n $$.updateTargetsForSubchart(targets);\r\n }\r\n // Fade-in each chart\r\n $$.showTargets();\r\n };\r\n ChartInternal.prototype.showTargets = function () {\r\n var $$ = this;\r\n $$.svg\r\n .selectAll('.' + CLASS.target)\r\n .filter(function (d) {\r\n return $$.isTargetToShow(d.id);\r\n })\r\n .transition()\r\n .duration($$.config.transition_duration)\r\n .style('opacity', 1);\r\n };\r\n ChartInternal.prototype.redraw = function (options, transitions) {\r\n var $$ = this, main = $$.main, d3 = $$.d3, config = $$.config;\r\n var areaIndices = $$.getShapeIndices($$.isAreaType), barIndices = $$.getShapeIndices($$.isBarType), lineIndices = $$.getShapeIndices($$.isLineType);\r\n var withY, withSubchart, withTransition, withTransitionForExit, withTransitionForAxis, withTransform, withUpdateXDomain, withUpdateOrgXDomain, withTrimXDomain, withLegend, withEventRect, withDimension, withUpdateXAxis;\r\n var hideAxis = $$.hasArcType();\r\n var drawArea, drawBar, drawLine, xForText, yForText;\r\n var duration, durationForExit, durationForAxis;\r\n var transitionsToWait, waitForDraw, flow, transition;\r\n var targetsToShow = $$.filterTargetsToShow($$.data.targets), tickValues, i, intervalForCulling, xDomainForZoom;\r\n var xv = $$.xv.bind($$), cx, cy;\r\n options = options || {};\r\n withY = getOption(options, 'withY', true);\r\n withSubchart = getOption(options, 'withSubchart', true);\r\n withTransition = getOption(options, 'withTransition', true);\r\n withTransform = getOption(options, 'withTransform', false);\r\n withUpdateXDomain = getOption(options, 'withUpdateXDomain', false);\r\n withUpdateOrgXDomain = getOption(options, 'withUpdateOrgXDomain', false);\r\n withTrimXDomain = getOption(options, 'withTrimXDomain', true);\r\n withUpdateXAxis = getOption(options, 'withUpdateXAxis', withUpdateXDomain);\r\n withLegend = getOption(options, 'withLegend', false);\r\n withEventRect = getOption(options, 'withEventRect', true);\r\n withDimension = getOption(options, 'withDimension', true);\r\n withTransitionForExit = getOption(options, 'withTransitionForExit', withTransition);\r\n withTransitionForAxis = getOption(options, 'withTransitionForAxis', withTransition);\r\n duration = withTransition ? config.transition_duration : 0;\r\n durationForExit = withTransitionForExit ? duration : 0;\r\n durationForAxis = withTransitionForAxis ? duration : 0;\r\n transitions = transitions || $$.axis.generateTransitions(durationForAxis);\r\n // update legend and transform each g\r\n if (withLegend && config.legend_show) {\r\n $$.updateLegend($$.mapToIds($$.data.targets), options, transitions);\r\n }\r\n else if (withDimension) {\r\n // need to update dimension (e.g. axis.y.tick.values) because y tick values should change\r\n // no need to update axis in it because they will be updated in redraw()\r\n $$.updateDimension(true);\r\n }\r\n // MEMO: needed for grids calculation\r\n if ($$.isCategorized() && targetsToShow.length === 0) {\r\n $$.x.domain([0, $$.axes.x.selectAll('.tick').size()]);\r\n }\r\n if (targetsToShow.length) {\r\n $$.updateXDomain(targetsToShow, withUpdateXDomain, withUpdateOrgXDomain, withTrimXDomain);\r\n if (!config.axis_x_tick_values) {\r\n tickValues = $$.axis.updateXAxisTickValues(targetsToShow);\r\n }\r\n }\r\n else {\r\n $$.xAxis.tickValues([]);\r\n $$.subXAxis.tickValues([]);\r\n }\r\n if (config.zoom_rescale && !options.flow) {\r\n xDomainForZoom = $$.x.orgDomain();\r\n }\r\n $$.y.domain($$.getYDomain(targetsToShow, 'y', xDomainForZoom));\r\n $$.y2.domain($$.getYDomain(targetsToShow, 'y2', xDomainForZoom));\r\n if (!config.axis_y_tick_values && config.axis_y_tick_count) {\r\n $$.yAxis.tickValues($$.axis.generateTickValues($$.y.domain(), config.axis_y_tick_count));\r\n }\r\n if (!config.axis_y2_tick_values && config.axis_y2_tick_count) {\r\n $$.y2Axis.tickValues($$.axis.generateTickValues($$.y2.domain(), config.axis_y2_tick_count));\r\n }\r\n // axes\r\n $$.axis.redraw(durationForAxis, hideAxis);\r\n // Update axis label\r\n $$.axis.updateLabels(withTransition);\r\n // show/hide if manual culling needed\r\n if ((withUpdateXDomain || withUpdateXAxis) && targetsToShow.length) {\r\n if (config.axis_x_tick_culling && tickValues) {\r\n for (i = 1; i < tickValues.length; i++) {\r\n if (tickValues.length / i < config.axis_x_tick_culling_max) {\r\n intervalForCulling = i;\r\n break;\r\n }\r\n }\r\n $$.svg.selectAll('.' + CLASS.axisX + ' .tick text').each(function (e) {\r\n var index = tickValues.indexOf(e);\r\n if (index >= 0) {\r\n d3.select(this).style('display', index % intervalForCulling ? 'none' : 'block');\r\n }\r\n });\r\n }\r\n else {\r\n $$.svg\r\n .selectAll('.' + CLASS.axisX + ' .tick text')\r\n .style('display', 'block');\r\n }\r\n }\r\n // setup drawer - MEMO: these must be called after axis updated\r\n drawArea = $$.generateDrawArea\r\n ? $$.generateDrawArea(areaIndices, false)\r\n : undefined;\r\n drawBar = $$.generateDrawBar ? $$.generateDrawBar(barIndices) : undefined;\r\n drawLine = $$.generateDrawLine\r\n ? $$.generateDrawLine(lineIndices, false)\r\n : undefined;\r\n xForText = $$.generateXYForText(areaIndices, barIndices, lineIndices, true);\r\n yForText = $$.generateXYForText(areaIndices, barIndices, lineIndices, false);\r\n // update circleY based on updated parameters\r\n $$.updateCircleY();\r\n // generate circle x/y functions depending on updated params\r\n cx = ($$.config.axis_rotated ? $$.circleY : $$.circleX).bind($$);\r\n cy = ($$.config.axis_rotated ? $$.circleX : $$.circleY).bind($$);\r\n // Update sub domain\r\n if (withY) {\r\n $$.subY.domain($$.getYDomain(targetsToShow, 'y'));\r\n $$.subY2.domain($$.getYDomain(targetsToShow, 'y2'));\r\n }\r\n // xgrid focus\r\n $$.updateXgridFocus();\r\n // Data empty label positioning and text.\r\n main\r\n .select('text.' + CLASS.text + '.' + CLASS.empty)\r\n .attr('x', $$.width / 2)\r\n .attr('y', $$.height / 2)\r\n .text(config.data_empty_label_text)\r\n .transition()\r\n .style('opacity', targetsToShow.length ? 0 : 1);\r\n // event rect\r\n if (withEventRect) {\r\n $$.redrawEventRect();\r\n }\r\n // grid\r\n $$.updateGrid(duration);\r\n $$.updateStanfordElements(duration);\r\n // rect for regions\r\n $$.updateRegion(duration);\r\n // bars\r\n $$.updateBar(durationForExit);\r\n // lines, areas and circles\r\n $$.updateLine(durationForExit);\r\n $$.updateArea(durationForExit);\r\n $$.updateCircle(cx, cy);\r\n // text\r\n if ($$.hasDataLabel()) {\r\n $$.updateText(xForText, yForText, durationForExit);\r\n }\r\n // title\r\n if ($$.redrawTitle) {\r\n $$.redrawTitle();\r\n }\r\n // arc\r\n if ($$.redrawArc) {\r\n $$.redrawArc(duration, durationForExit, withTransform);\r\n }\r\n // subchart\r\n if (config.subchart_show && $$.redrawSubchart) {\r\n $$.redrawSubchart(withSubchart, transitions, duration, durationForExit, areaIndices, barIndices, lineIndices);\r\n }\r\n if ($$.isStanfordGraphType()) {\r\n $$.drawColorScale();\r\n }\r\n // circles for select\r\n main\r\n .selectAll('.' + CLASS.selectedCircles)\r\n .filter($$.isBarType.bind($$))\r\n .selectAll('circle')\r\n .remove();\r\n if (options.flow) {\r\n flow = $$.generateFlow({\r\n targets: targetsToShow,\r\n flow: options.flow,\r\n duration: options.flow.duration,\r\n drawBar: drawBar,\r\n drawLine: drawLine,\r\n drawArea: drawArea,\r\n cx: cx,\r\n cy: cy,\r\n xv: xv,\r\n xForText: xForText,\r\n yForText: yForText\r\n });\r\n }\r\n if (duration && $$.isTabVisible()) {\r\n // Only use transition if tab visible. See #938.\r\n // transition should be derived from one transition\r\n transition = d3.transition().duration(duration);\r\n transitionsToWait = [];\r\n [\r\n $$.redrawBar(drawBar, true, transition),\r\n $$.redrawLine(drawLine, true, transition),\r\n $$.redrawArea(drawArea, true, transition),\r\n $$.redrawCircle(cx, cy, true, transition),\r\n $$.redrawText(xForText, yForText, options.flow, true, transition),\r\n $$.redrawRegion(true, transition),\r\n $$.redrawGrid(true, transition)\r\n ].forEach(function (transitions) {\r\n transitions.forEach(function (transition) {\r\n transitionsToWait.push(transition);\r\n });\r\n });\r\n // Wait for end of transitions to call flow and onrendered callback\r\n waitForDraw = $$.generateWait();\r\n transitionsToWait.forEach(function (t) {\r\n waitForDraw.add(t);\r\n });\r\n waitForDraw(function () {\r\n if (flow) {\r\n flow();\r\n }\r\n if (config.onrendered) {\r\n config.onrendered.call($$);\r\n }\r\n });\r\n }\r\n else {\r\n $$.redrawBar(drawBar);\r\n $$.redrawLine(drawLine);\r\n $$.redrawArea(drawArea);\r\n $$.redrawCircle(cx, cy);\r\n $$.redrawText(xForText, yForText, options.flow);\r\n $$.redrawRegion();\r\n $$.redrawGrid();\r\n if (flow) {\r\n flow();\r\n }\r\n if (config.onrendered) {\r\n config.onrendered.call($$);\r\n }\r\n }\r\n // update fadein condition\r\n $$.mapToIds($$.data.targets).forEach(function (id) {\r\n $$.withoutFadeIn[id] = true;\r\n });\r\n };\r\n ChartInternal.prototype.updateAndRedraw = function (options) {\r\n var $$ = this, config = $$.config, transitions;\r\n options = options || {};\r\n // same with redraw\r\n options.withTransition = getOption(options, 'withTransition', true);\r\n options.withTransform = getOption(options, 'withTransform', false);\r\n options.withLegend = getOption(options, 'withLegend', false);\r\n // NOT same with redraw\r\n options.withUpdateXDomain = getOption(options, 'withUpdateXDomain', true);\r\n options.withUpdateOrgXDomain = getOption(options, 'withUpdateOrgXDomain', true);\r\n options.withTransitionForExit = false;\r\n options.withTransitionForTransform = getOption(options, 'withTransitionForTransform', options.withTransition);\r\n // MEMO: this needs to be called before updateLegend and it means this ALWAYS needs to be called)\r\n $$.updateSizes();\r\n // MEMO: called in updateLegend in redraw if withLegend\r\n if (!(options.withLegend && config.legend_show)) {\r\n transitions = $$.axis.generateTransitions(options.withTransitionForAxis ? config.transition_duration : 0);\r\n // Update scales\r\n $$.updateScales();\r\n $$.updateSvgSize();\r\n // Update g positions\r\n $$.transformAll(options.withTransitionForTransform, transitions);\r\n }\r\n // Draw with new sizes & scales\r\n $$.redraw(options, transitions);\r\n };\r\n ChartInternal.prototype.redrawWithoutRescale = function () {\r\n this.redraw({\r\n withY: false,\r\n withSubchart: false,\r\n withEventRect: false,\r\n withTransitionForAxis: false\r\n });\r\n };\r\n ChartInternal.prototype.isTimeSeries = function () {\r\n return this.config.axis_x_type === 'timeseries';\r\n };\r\n ChartInternal.prototype.isCategorized = function () {\r\n return this.config.axis_x_type.indexOf('categor') >= 0;\r\n };\r\n ChartInternal.prototype.isCustomX = function () {\r\n var $$ = this, config = $$.config;\r\n return !$$.isTimeSeries() && (config.data_x || notEmpty(config.data_xs));\r\n };\r\n ChartInternal.prototype.isTimeSeriesY = function () {\r\n return this.config.axis_y_type === 'timeseries';\r\n };\r\n ChartInternal.prototype.getTranslate = function (target) {\r\n var $$ = this, config = $$.config, x, y;\r\n if (target === 'main') {\r\n x = asHalfPixel($$.margin.left);\r\n y = asHalfPixel($$.margin.top);\r\n }\r\n else if (target === 'context') {\r\n x = asHalfPixel($$.margin2.left);\r\n y = asHalfPixel($$.margin2.top);\r\n }\r\n else if (target === 'legend') {\r\n x = $$.margin3.left;\r\n y = $$.margin3.top;\r\n }\r\n else if (target === 'x') {\r\n x = 0;\r\n y = config.axis_rotated ? 0 : $$.height;\r\n }\r\n else if (target === 'y') {\r\n x = 0;\r\n y = config.axis_rotated ? $$.height : 0;\r\n }\r\n else if (target === 'y2') {\r\n x = config.axis_rotated ? 0 : $$.width;\r\n y = config.axis_rotated ? 1 : 0;\r\n }\r\n else if (target === 'subx') {\r\n x = 0;\r\n y = config.axis_rotated ? 0 : $$.height2;\r\n }\r\n else if (target === 'arc') {\r\n x = $$.arcWidth / 2;\r\n y = $$.arcHeight / 2 - ($$.hasType('gauge') ? 6 : 0); // to prevent wrong display of min and max label\r\n }\r\n return 'translate(' + x + ',' + y + ')';\r\n };\r\n ChartInternal.prototype.initialOpacity = function (d) {\r\n return d.value !== null && this.withoutFadeIn[d.id] ? 1 : 0;\r\n };\r\n ChartInternal.prototype.initialOpacityForCircle = function (d) {\r\n return d.value !== null && this.withoutFadeIn[d.id]\r\n ? this.opacityForCircle(d)\r\n : 0;\r\n };\r\n ChartInternal.prototype.opacityForCircle = function (d) {\r\n var isPointShouldBeShown = isFunction(this.config.point_show)\r\n ? this.config.point_show(d)\r\n : this.config.point_show;\r\n var opacity = isPointShouldBeShown || this.isStanfordType(d) ? 1 : 0;\r\n return isValue(d.value) ? (this.isScatterType(d) ? 0.5 : opacity) : 0;\r\n };\r\n ChartInternal.prototype.opacityForText = function () {\r\n return this.hasDataLabel() ? 1 : 0;\r\n };\r\n ChartInternal.prototype.xx = function (d) {\r\n return d ? this.x(d.x) : null;\r\n };\r\n ChartInternal.prototype.xvCustom = function (d, xyValue) {\r\n var $$ = this, value = xyValue ? d[xyValue] : d.value;\r\n if ($$.isTimeSeries()) {\r\n value = $$.parseDate(d.value);\r\n }\r\n else if ($$.isCategorized() && typeof d.value === 'string') {\r\n value = $$.config.axis_x_categories.indexOf(d.value);\r\n }\r\n return Math.ceil($$.x(value));\r\n };\r\n ChartInternal.prototype.yvCustom = function (d, xyValue) {\r\n var $$ = this, yScale = d.axis && d.axis === 'y2' ? $$.y2 : $$.y, value = xyValue ? d[xyValue] : d.value;\r\n return Math.ceil(yScale(value));\r\n };\r\n ChartInternal.prototype.xv = function (d) {\r\n var $$ = this, value = d.value;\r\n if ($$.isTimeSeries()) {\r\n value = $$.parseDate(d.value);\r\n }\r\n else if ($$.isCategorized() && typeof d.value === 'string') {\r\n value = $$.config.axis_x_categories.indexOf(d.value);\r\n }\r\n return Math.ceil($$.x(value));\r\n };\r\n ChartInternal.prototype.yv = function (d) {\r\n var $$ = this, yScale = d.axis && d.axis === 'y2' ? $$.y2 : $$.y;\r\n return Math.ceil(yScale(d.value));\r\n };\r\n ChartInternal.prototype.subxx = function (d) {\r\n return d ? this.subX(d.x) : null;\r\n };\r\n ChartInternal.prototype.transformMain = function (withTransition, transitions) {\r\n var $$ = this, xAxis, yAxis, y2Axis;\r\n if (transitions && transitions.axisX) {\r\n xAxis = transitions.axisX;\r\n }\r\n else {\r\n xAxis = $$.main.select('.' + CLASS.axisX);\r\n if (withTransition) {\r\n xAxis = xAxis.transition();\r\n }\r\n }\r\n if (transitions && transitions.axisY) {\r\n yAxis = transitions.axisY;\r\n }\r\n else {\r\n yAxis = $$.main.select('.' + CLASS.axisY);\r\n if (withTransition) {\r\n yAxis = yAxis.transition();\r\n }\r\n }\r\n if (transitions && transitions.axisY2) {\r\n y2Axis = transitions.axisY2;\r\n }\r\n else {\r\n y2Axis = $$.main.select('.' + CLASS.axisY2);\r\n if (withTransition) {\r\n y2Axis = y2Axis.transition();\r\n }\r\n }\r\n (withTransition ? $$.main.transition() : $$.main).attr('transform', $$.getTranslate('main'));\r\n xAxis.attr('transform', $$.getTranslate('x'));\r\n yAxis.attr('transform', $$.getTranslate('y'));\r\n y2Axis.attr('transform', $$.getTranslate('y2'));\r\n $$.main\r\n .select('.' + CLASS.chartArcs)\r\n .attr('transform', $$.getTranslate('arc'));\r\n };\r\n ChartInternal.prototype.transformAll = function (withTransition, transitions) {\r\n var $$ = this;\r\n $$.transformMain(withTransition, transitions);\r\n if ($$.config.subchart_show) {\r\n $$.transformContext(withTransition, transitions);\r\n }\r\n if ($$.legend) {\r\n $$.transformLegend(withTransition);\r\n }\r\n };\r\n ChartInternal.prototype.updateSvgSize = function () {\r\n var $$ = this, brush = $$.svg.select(\".\" + CLASS.brush + \" .overlay\");\r\n $$.svg.attr('width', $$.currentWidth).attr('height', $$.currentHeight);\r\n $$.svg\r\n .selectAll(['#' + $$.clipId, '#' + $$.clipIdForGrid])\r\n .select('rect')\r\n .attr('width', $$.width)\r\n .attr('height', $$.height);\r\n $$.svg\r\n .select('#' + $$.clipIdForXAxis)\r\n .select('rect')\r\n .attr('x', $$.getXAxisClipX.bind($$))\r\n .attr('y', $$.getXAxisClipY.bind($$))\r\n .attr('width', $$.getXAxisClipWidth.bind($$))\r\n .attr('height', $$.getXAxisClipHeight.bind($$));\r\n $$.svg\r\n .select('#' + $$.clipIdForYAxis)\r\n .select('rect')\r\n .attr('x', $$.getYAxisClipX.bind($$))\r\n .attr('y', $$.getYAxisClipY.bind($$))\r\n .attr('width', $$.getYAxisClipWidth.bind($$))\r\n .attr('height', $$.getYAxisClipHeight.bind($$));\r\n $$.svg\r\n .select('#' + $$.clipIdForSubchart)\r\n .select('rect')\r\n .attr('width', $$.width)\r\n .attr('height', (brush.size() && brush.attr('height')) || 0);\r\n // MEMO: parent div's height will be bigger than svg when \r\n $$.selectChart.style('max-height', $$.currentHeight + 'px');\r\n };\r\n ChartInternal.prototype.updateDimension = function (withoutAxis) {\r\n var $$ = this;\r\n if (!withoutAxis) {\r\n if ($$.config.axis_rotated) {\r\n $$.axes.x.call($$.xAxis);\r\n $$.axes.subx.call($$.subXAxis);\r\n }\r\n else {\r\n $$.axes.y.call($$.yAxis);\r\n $$.axes.y2.call($$.y2Axis);\r\n }\r\n }\r\n $$.updateSizes();\r\n $$.updateScales();\r\n $$.updateSvgSize();\r\n $$.transformAll(false);\r\n };\r\n ChartInternal.prototype.observeInserted = function (selection) {\r\n var $$ = this, observer;\r\n if (typeof MutationObserver === 'undefined') {\r\n window.console.error('MutationObserver not defined.');\r\n return;\r\n }\r\n observer = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n if (mutation.type === 'childList' && mutation.previousSibling) {\r\n observer.disconnect();\r\n // need to wait for completion of load because size calculation requires the actual sizes determined after that completion\r\n $$.intervalForObserveInserted = window.setInterval(function () {\r\n // parentNode will NOT be null when completed\r\n if (selection.node().parentNode) {\r\n window.clearInterval($$.intervalForObserveInserted);\r\n $$.updateDimension();\r\n if ($$.brush) {\r\n $$.brush.update();\r\n }\r\n $$.config.oninit.call($$);\r\n $$.redraw({\r\n withTransform: true,\r\n withUpdateXDomain: true,\r\n withUpdateOrgXDomain: true,\r\n withTransition: false,\r\n withTransitionForTransform: false,\r\n withLegend: true\r\n });\r\n selection.transition().style('opacity', 1);\r\n }\r\n }, 10);\r\n }\r\n });\r\n });\r\n observer.observe(selection.node(), {\r\n attributes: true,\r\n childList: true,\r\n characterData: true\r\n });\r\n };\r\n /**\r\n * Binds handlers to the window resize event.\r\n */\r\n ChartInternal.prototype.bindResize = function () {\r\n var $$ = this, config = $$.config;\r\n $$.resizeFunction = $$.generateResize(); // need to call .remove\r\n $$.resizeFunction.add(function () {\r\n config.onresize.call($$);\r\n });\r\n if (config.resize_auto) {\r\n $$.resizeFunction.add(function () {\r\n if ($$.resizeTimeout !== undefined) {\r\n window.clearTimeout($$.resizeTimeout);\r\n }\r\n $$.resizeTimeout = window.setTimeout(function () {\r\n delete $$.resizeTimeout;\r\n $$.updateAndRedraw({\r\n withUpdateXDomain: false,\r\n withUpdateOrgXDomain: false,\r\n withTransition: false,\r\n withTransitionForTransform: false,\r\n withLegend: true\r\n });\r\n if ($$.brush) {\r\n $$.brush.update();\r\n }\r\n }, 100);\r\n });\r\n }\r\n $$.resizeFunction.add(function () {\r\n config.onresized.call($$);\r\n });\r\n $$.resizeIfElementDisplayed = function () {\r\n // if element not displayed skip it\r\n if ($$.api == null || !$$.api.element.offsetParent) {\r\n return;\r\n }\r\n $$.resizeFunction();\r\n };\r\n window.addEventListener('resize', $$.resizeIfElementDisplayed, false);\r\n };\r\n /**\r\n * Binds handlers to the window focus event.\r\n */\r\n ChartInternal.prototype.bindWindowFocus = function () {\r\n var _this = this;\r\n if (this.windowFocusHandler) {\r\n // The handler is already set\r\n return;\r\n }\r\n this.windowFocusHandler = function () {\r\n _this.redraw();\r\n };\r\n window.addEventListener('focus', this.windowFocusHandler);\r\n };\r\n /**\r\n * Unbinds from the window focus event.\r\n */\r\n ChartInternal.prototype.unbindWindowFocus = function () {\r\n window.removeEventListener('focus', this.windowFocusHandler);\r\n delete this.windowFocusHandler;\r\n };\r\n ChartInternal.prototype.generateResize = function () {\r\n var resizeFunctions = [];\r\n function callResizeFunctions() {\r\n resizeFunctions.forEach(function (f) {\r\n f();\r\n });\r\n }\r\n callResizeFunctions.add = function (f) {\r\n resizeFunctions.push(f);\r\n };\r\n callResizeFunctions.remove = function (f) {\r\n for (var i = 0; i < resizeFunctions.length; i++) {\r\n if (resizeFunctions[i] === f) {\r\n resizeFunctions.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n return callResizeFunctions;\r\n };\r\n ChartInternal.prototype.endall = function (transition, callback) {\r\n var n = 0;\r\n transition\r\n .each(function () {\r\n ++n;\r\n })\r\n .on('end', function () {\r\n if (!--n) {\r\n callback.apply(this, arguments);\r\n }\r\n });\r\n };\r\n ChartInternal.prototype.generateWait = function () {\r\n var $$ = this;\r\n var transitionsToWait = [], f = function (callback) {\r\n var timer = setInterval(function () {\r\n if (!$$.isTabVisible()) {\r\n return;\r\n }\r\n var done = 0;\r\n transitionsToWait.forEach(function (t) {\r\n if (t.empty()) {\r\n done += 1;\r\n return;\r\n }\r\n try {\r\n t.transition();\r\n }\r\n catch (e) {\r\n done += 1;\r\n }\r\n });\r\n if (done === transitionsToWait.length) {\r\n clearInterval(timer);\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }, 50);\r\n };\r\n f.add = function (transition) {\r\n transitionsToWait.push(transition);\r\n };\r\n return f;\r\n };\r\n ChartInternal.prototype.parseDate = function (date) {\r\n var $$ = this, parsedDate;\r\n if (date instanceof Date) {\r\n parsedDate = date;\r\n }\r\n else if (typeof date === 'string') {\r\n parsedDate = $$.dataTimeParse(date);\r\n }\r\n else if (typeof date === 'object') {\r\n parsedDate = new Date(+date);\r\n }\r\n else if (typeof date === 'number' && !isNaN(date)) {\r\n parsedDate = new Date(+date);\r\n }\r\n if (!parsedDate || isNaN(+parsedDate)) {\r\n window.console.error(\"Failed to parse x '\" + date + \"' to Date object\");\r\n }\r\n return parsedDate;\r\n };\r\n ChartInternal.prototype.isTabVisible = function () {\r\n return !document.hidden;\r\n };\r\n ChartInternal.prototype.getPathBox = getPathBox;\r\n ChartInternal.prototype.CLASS = CLASS;\n\n /* jshint ignore:start */\r\n (function () {\r\n if (!('SVGPathSeg' in window)) {\r\n // Spec: http://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSeg\r\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\r\n this.pathSegType = type;\r\n this.pathSegTypeAsLetter = typeAsLetter;\r\n this._owningPathSegList = owningPathSegList;\r\n };\r\n window.SVGPathSeg.prototype.classname = 'SVGPathSeg';\r\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\r\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\r\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\r\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\r\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\r\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\r\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\r\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\r\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\r\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\r\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\r\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\r\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\r\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\r\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\r\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\r\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\r\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\r\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\r\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\r\n // Notify owning PathSegList on any changes so they can be synchronized back to the path element.\r\n window.SVGPathSeg.prototype._segmentChanged = function () {\r\n if (this._owningPathSegList)\r\n this._owningPathSegList.segmentChanged(this);\r\n };\r\n window.SVGPathSegClosePath = function (owningPathSegList) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList);\r\n };\r\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegClosePath.prototype.toString = function () {\r\n return '[object SVGPathSegClosePath]';\r\n };\r\n window.SVGPathSegClosePath.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter;\r\n };\r\n window.SVGPathSegClosePath.prototype.clone = function () {\r\n return new window.SVGPathSegClosePath(undefined);\r\n };\r\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\r\n return '[object SVGPathSegMovetoAbs]';\r\n };\r\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\r\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegMovetoRel.prototype.toString = function () {\r\n return '[object SVGPathSegMovetoRel]';\r\n };\r\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegMovetoRel.prototype.clone = function () {\r\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoAbs]';\r\n };\r\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoRel.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoRel]';\r\n };\r\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegLinetoRel.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x1 = x1;\r\n this._y1 = y1;\r\n this._x2 = x2;\r\n this._y2 = y2;\r\n };\r\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoCubicAbs]';\r\n };\r\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x1 +\r\n ' ' +\r\n this._y1 +\r\n ' ' +\r\n this._x2 +\r\n ' ' +\r\n this._y2 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'x1', {\r\n get: function () {\r\n return this._x1;\r\n },\r\n set: function (x1) {\r\n this._x1 = x1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'y1', {\r\n get: function () {\r\n return this._y1;\r\n },\r\n set: function (y1) {\r\n this._y1 = y1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'x2', {\r\n get: function () {\r\n return this._x2;\r\n },\r\n set: function (x2) {\r\n this._x2 = x2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, 'y2', {\r\n get: function () {\r\n return this._y2;\r\n },\r\n set: function (y2) {\r\n this._y2 = y2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x1 = x1;\r\n this._y1 = y1;\r\n this._x2 = x2;\r\n this._y2 = y2;\r\n };\r\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoCubicRel]';\r\n };\r\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x1 +\r\n ' ' +\r\n this._y1 +\r\n ' ' +\r\n this._x2 +\r\n ' ' +\r\n this._y2 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'x1', {\r\n get: function () {\r\n return this._x1;\r\n },\r\n set: function (x1) {\r\n this._x1 = x1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'y1', {\r\n get: function () {\r\n return this._y1;\r\n },\r\n set: function (y1) {\r\n this._y1 = y1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'x2', {\r\n get: function () {\r\n return this._x2;\r\n },\r\n set: function (x2) {\r\n this._x2 = x2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, 'y2', {\r\n get: function () {\r\n return this._y2;\r\n },\r\n set: function (y2) {\r\n this._y2 = y2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x1 = x1;\r\n this._y1 = y1;\r\n };\r\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoQuadraticAbs]';\r\n };\r\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x1 +\r\n ' ' +\r\n this._y1 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, 'x1', {\r\n get: function () {\r\n return this._x1;\r\n },\r\n set: function (x1) {\r\n this._x1 = x1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, 'y1', {\r\n get: function () {\r\n return this._y1;\r\n },\r\n set: function (y1) {\r\n this._y1 = y1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x1 = x1;\r\n this._y1 = y1;\r\n };\r\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoQuadraticRel]';\r\n };\r\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x1 +\r\n ' ' +\r\n this._y1 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, 'x1', {\r\n get: function () {\r\n return this._x1;\r\n },\r\n set: function (x1) {\r\n this._x1 = x1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, 'y1', {\r\n get: function () {\r\n return this._y1;\r\n },\r\n set: function (y1) {\r\n this._y1 = y1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._r1 = r1;\r\n this._r2 = r2;\r\n this._angle = angle;\r\n this._largeArcFlag = largeArcFlag;\r\n this._sweepFlag = sweepFlag;\r\n };\r\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegArcAbs.prototype.toString = function () {\r\n return '[object SVGPathSegArcAbs]';\r\n };\r\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._r1 +\r\n ' ' +\r\n this._r2 +\r\n ' ' +\r\n this._angle +\r\n ' ' +\r\n (this._largeArcFlag ? '1' : '0') +\r\n ' ' +\r\n (this._sweepFlag ? '1' : '0') +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegArcAbs.prototype.clone = function () {\r\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\r\n };\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'r1', {\r\n get: function () {\r\n return this._r1;\r\n },\r\n set: function (r1) {\r\n this._r1 = r1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'r2', {\r\n get: function () {\r\n return this._r2;\r\n },\r\n set: function (r2) {\r\n this._r2 = r2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'angle', {\r\n get: function () {\r\n return this._angle;\r\n },\r\n set: function (angle) {\r\n this._angle = angle;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'largeArcFlag', {\r\n get: function () {\r\n return this._largeArcFlag;\r\n },\r\n set: function (largeArcFlag) {\r\n this._largeArcFlag = largeArcFlag;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, 'sweepFlag', {\r\n get: function () {\r\n return this._sweepFlag;\r\n },\r\n set: function (sweepFlag) {\r\n this._sweepFlag = sweepFlag;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._r1 = r1;\r\n this._r2 = r2;\r\n this._angle = angle;\r\n this._largeArcFlag = largeArcFlag;\r\n this._sweepFlag = sweepFlag;\r\n };\r\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegArcRel.prototype.toString = function () {\r\n return '[object SVGPathSegArcRel]';\r\n };\r\n window.SVGPathSegArcRel.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._r1 +\r\n ' ' +\r\n this._r2 +\r\n ' ' +\r\n this._angle +\r\n ' ' +\r\n (this._largeArcFlag ? '1' : '0') +\r\n ' ' +\r\n (this._sweepFlag ? '1' : '0') +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegArcRel.prototype.clone = function () {\r\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\r\n };\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'r1', {\r\n get: function () {\r\n return this._r1;\r\n },\r\n set: function (r1) {\r\n this._r1 = r1;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'r2', {\r\n get: function () {\r\n return this._r2;\r\n },\r\n set: function (r2) {\r\n this._r2 = r2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'angle', {\r\n get: function () {\r\n return this._angle;\r\n },\r\n set: function (angle) {\r\n this._angle = angle;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'largeArcFlag', {\r\n get: function () {\r\n return this._largeArcFlag;\r\n },\r\n set: function (largeArcFlag) {\r\n this._largeArcFlag = largeArcFlag;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegArcRel.prototype, 'sweepFlag', {\r\n get: function () {\r\n return this._sweepFlag;\r\n },\r\n set: function (sweepFlag) {\r\n this._sweepFlag = sweepFlag;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList);\r\n this._x = x;\r\n };\r\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoHorizontalAbs]';\r\n };\r\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x;\r\n };\r\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList);\r\n this._x = x;\r\n };\r\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoHorizontalRel]';\r\n };\r\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x;\r\n };\r\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList);\r\n this._y = y;\r\n };\r\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoVerticalAbs]';\r\n };\r\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._y;\r\n };\r\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList);\r\n this._y = y;\r\n };\r\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\r\n return '[object SVGPathSegLinetoVerticalRel]';\r\n };\r\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._y;\r\n };\r\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\r\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x2 = x2;\r\n this._y2 = y2;\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoCubicSmoothAbs]';\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x2 +\r\n ' ' +\r\n this._y2 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, 'x2', {\r\n get: function () {\r\n return this._x2;\r\n },\r\n set: function (x2) {\r\n this._x2 = x2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, 'y2', {\r\n get: function () {\r\n return this._y2;\r\n },\r\n set: function (y2) {\r\n this._y2 = y2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n this._x2 = x2;\r\n this._y2 = y2;\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoCubicSmoothRel]';\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\r\n return (this.pathSegTypeAsLetter +\r\n ' ' +\r\n this._x2 +\r\n ' ' +\r\n this._y2 +\r\n ' ' +\r\n this._x +\r\n ' ' +\r\n this._y);\r\n };\r\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, 'x2', {\r\n get: function () {\r\n return this._x2;\r\n },\r\n set: function (x2) {\r\n this._x2 = x2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, 'y2', {\r\n get: function () {\r\n return this._y2;\r\n },\r\n set: function (y2) {\r\n this._y2 = y2;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoQuadraticSmoothAbs]';\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\r\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList);\r\n this._x = x;\r\n this._y = y;\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\r\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\r\n return '[object SVGPathSegCurvetoQuadraticSmoothRel]';\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\r\n return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y;\r\n };\r\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\r\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\r\n };\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, 'x', {\r\n get: function () {\r\n return this._x;\r\n },\r\n set: function (x) {\r\n this._x = x;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, 'y', {\r\n get: function () {\r\n return this._y;\r\n },\r\n set: function (y) {\r\n this._y = y;\r\n this._segmentChanged();\r\n },\r\n enumerable: true\r\n });\r\n // Add createSVGPathSeg* functions to window.SVGPathElement.\r\n // Spec: http://www.w3.org/TR/SVG11/single-page.html#paths-Interfacewindow.SVGPathElement.\r\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\r\n return new window.SVGPathSegClosePath(undefined);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\r\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\r\n return new window.SVGPathSegMovetoRel(undefined, x, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\r\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\r\n return new window.SVGPathSegLinetoRel(undefined, x, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\r\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\r\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\r\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\r\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\r\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\r\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\r\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\r\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\r\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\r\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\r\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\r\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\r\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\r\n };\r\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\r\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\r\n };\r\n if (!('getPathSegAtLength' in window.SVGPathElement.prototype)) {\r\n // Add getPathSegAtLength to SVGPathElement.\r\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-__svg__SVGPathElement__getPathSegAtLength\r\n // This polyfill requires SVGPathElement.getTotalLength to implement the distance-along-a-path algorithm.\r\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\r\n if (distance === undefined || !isFinite(distance))\r\n throw 'Invalid arguments.';\r\n var measurementElement = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n measurementElement.setAttribute('d', this.getAttribute('d'));\r\n var lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\r\n // If the path is empty, return 0.\r\n if (lastPathSegment <= 0)\r\n return 0;\r\n do {\r\n measurementElement.pathSegList.removeItem(lastPathSegment);\r\n if (distance > measurementElement.getTotalLength())\r\n break;\r\n lastPathSegment--;\r\n } while (lastPathSegment > 0);\r\n return lastPathSegment;\r\n };\r\n }\r\n }\r\n if (!('SVGPathSegList' in window)) {\r\n // Spec: http://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSegList\r\n window.SVGPathSegList = function (pathElement) {\r\n this._pathElement = pathElement;\r\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\r\n // Use a MutationObserver to catch changes to the path's \"d\" attribute.\r\n this._mutationObserverConfig = {\r\n attributes: true,\r\n attributeFilter: ['d']\r\n };\r\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\r\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\r\n };\r\n window.SVGPathSegList.prototype.classname = 'SVGPathSegList';\r\n Object.defineProperty(window.SVGPathSegList.prototype, 'numberOfItems', {\r\n get: function () {\r\n this._checkPathSynchronizedToList();\r\n return this._list.length;\r\n },\r\n enumerable: true\r\n });\r\n // Add the pathSegList accessors to window.SVGPathElement.\r\n // Spec: http://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGAnimatedPathData\r\n Object.defineProperty(window.SVGPathElement.prototype, 'pathSegList', {\r\n get: function () {\r\n if (!this._pathSegList)\r\n this._pathSegList = new window.SVGPathSegList(this);\r\n return this._pathSegList;\r\n },\r\n enumerable: true\r\n });\r\n // FIXME: The following are not implemented and simply return window.SVGPathElement.pathSegList.\r\n Object.defineProperty(window.SVGPathElement.prototype, 'normalizedPathSegList', {\r\n get: function () {\r\n return this.pathSegList;\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathElement.prototype, 'animatedPathSegList', {\r\n get: function () {\r\n return this.pathSegList;\r\n },\r\n enumerable: true\r\n });\r\n Object.defineProperty(window.SVGPathElement.prototype, 'animatedNormalizedPathSegList', {\r\n get: function () {\r\n return this.pathSegList;\r\n },\r\n enumerable: true\r\n });\r\n // Process any pending mutations to the path element and update the list as needed.\r\n // This should be the first call of all public functions and is needed because\r\n // MutationObservers are not synchronous so we can have pending asynchronous mutations.\r\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\r\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\r\n };\r\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\r\n if (!this._pathElement)\r\n return;\r\n var hasPathMutations = false;\r\n mutationRecords.forEach(function (record) {\r\n if (record.attributeName == 'd')\r\n hasPathMutations = true;\r\n });\r\n if (hasPathMutations)\r\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\r\n };\r\n // Serialize the list and update the path's 'd' attribute.\r\n window.SVGPathSegList.prototype._writeListToPath = function () {\r\n this._pathElementMutationObserver.disconnect();\r\n this._pathElement.setAttribute('d', window.SVGPathSegList._pathSegArrayAsString(this._list));\r\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\r\n };\r\n // When a path segment changes the list needs to be synchronized back to the path element.\r\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\r\n this._writeListToPath();\r\n };\r\n window.SVGPathSegList.prototype.clear = function () {\r\n this._checkPathSynchronizedToList();\r\n this._list.forEach(function (pathSeg) {\r\n pathSeg._owningPathSegList = null;\r\n });\r\n this._list = [];\r\n this._writeListToPath();\r\n };\r\n window.SVGPathSegList.prototype.initialize = function (newItem) {\r\n this._checkPathSynchronizedToList();\r\n this._list = [newItem];\r\n newItem._owningPathSegList = this;\r\n this._writeListToPath();\r\n return newItem;\r\n };\r\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\r\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\r\n throw 'INDEX_SIZE_ERR';\r\n };\r\n window.SVGPathSegList.prototype.getItem = function (index) {\r\n this._checkPathSynchronizedToList();\r\n this._checkValidIndex(index);\r\n return this._list[index];\r\n };\r\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\r\n this._checkPathSynchronizedToList();\r\n // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list.\r\n if (index > this.numberOfItems)\r\n index = this.numberOfItems;\r\n if (newItem._owningPathSegList) {\r\n // SVG2 spec says to make a copy.\r\n newItem = newItem.clone();\r\n }\r\n this._list.splice(index, 0, newItem);\r\n newItem._owningPathSegList = this;\r\n this._writeListToPath();\r\n return newItem;\r\n };\r\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\r\n this._checkPathSynchronizedToList();\r\n if (newItem._owningPathSegList) {\r\n // SVG2 spec says to make a copy.\r\n newItem = newItem.clone();\r\n }\r\n this._checkValidIndex(index);\r\n this._list[index] = newItem;\r\n newItem._owningPathSegList = this;\r\n this._writeListToPath();\r\n return newItem;\r\n };\r\n window.SVGPathSegList.prototype.removeItem = function (index) {\r\n this._checkPathSynchronizedToList();\r\n this._checkValidIndex(index);\r\n var item = this._list[index];\r\n this._list.splice(index, 1);\r\n this._writeListToPath();\r\n return item;\r\n };\r\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\r\n this._checkPathSynchronizedToList();\r\n if (newItem._owningPathSegList) {\r\n // SVG2 spec says to make a copy.\r\n newItem = newItem.clone();\r\n }\r\n this._list.push(newItem);\r\n newItem._owningPathSegList = this;\r\n // TODO: Optimize this to just append to the existing attribute.\r\n this._writeListToPath();\r\n return newItem;\r\n };\r\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\r\n var string = '';\r\n var first = true;\r\n pathSegArray.forEach(function (pathSeg) {\r\n if (first) {\r\n first = false;\r\n string += pathSeg._asPathString();\r\n }\r\n else {\r\n string += ' ' + pathSeg._asPathString();\r\n }\r\n });\r\n return string;\r\n };\r\n // This closely follows SVGPathParser::parsePath from Source/core/svg/SVGPathParser.cpp.\r\n window.SVGPathSegList.prototype._parsePath = function (string) {\r\n if (!string || string.length == 0)\r\n return [];\r\n var owningPathSegList = this;\r\n var Builder = function () {\r\n this.pathSegList = [];\r\n };\r\n Builder.prototype.appendSegment = function (pathSeg) {\r\n this.pathSegList.push(pathSeg);\r\n };\r\n var Source = function (string) {\r\n this._string = string;\r\n this._currentIndex = 0;\r\n this._endIndex = this._string.length;\r\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\r\n this._skipOptionalSpaces();\r\n };\r\n Source.prototype._isCurrentSpace = function () {\r\n var character = this._string[this._currentIndex];\r\n return (character <= ' ' &&\r\n (character == ' ' ||\r\n character == '\\n' ||\r\n character == '\\t' ||\r\n character == '\\r' ||\r\n character == '\\f'));\r\n };\r\n Source.prototype._skipOptionalSpaces = function () {\r\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\r\n this._currentIndex++;\r\n return this._currentIndex < this._endIndex;\r\n };\r\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\r\n if (this._currentIndex < this._endIndex &&\r\n !this._isCurrentSpace() &&\r\n this._string.charAt(this._currentIndex) != ',')\r\n return false;\r\n if (this._skipOptionalSpaces()) {\r\n if (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) == ',') {\r\n this._currentIndex++;\r\n this._skipOptionalSpaces();\r\n }\r\n }\r\n return this._currentIndex < this._endIndex;\r\n };\r\n Source.prototype.hasMoreData = function () {\r\n return this._currentIndex < this._endIndex;\r\n };\r\n Source.prototype.peekSegmentType = function () {\r\n var lookahead = this._string[this._currentIndex];\r\n return this._pathSegTypeFromChar(lookahead);\r\n };\r\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\r\n switch (lookahead) {\r\n case 'Z':\r\n case 'z':\r\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\r\n case 'M':\r\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\r\n case 'm':\r\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\r\n case 'L':\r\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\r\n case 'l':\r\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\r\n case 'C':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\r\n case 'c':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\r\n case 'Q':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\r\n case 'q':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\r\n case 'A':\r\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\r\n case 'a':\r\n return window.SVGPathSeg.PATHSEG_ARC_REL;\r\n case 'H':\r\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\r\n case 'h':\r\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\r\n case 'V':\r\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\r\n case 'v':\r\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\r\n case 'S':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r\n case 's':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r\n case 'T':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r\n case 't':\r\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r\n default:\r\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\r\n }\r\n };\r\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\r\n // Check for remaining coordinates in the current command.\r\n if ((lookahead == '+' ||\r\n lookahead == '-' ||\r\n lookahead == '.' ||\r\n (lookahead >= '0' && lookahead <= '9')) &&\r\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\r\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\r\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\r\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\r\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\r\n return previousCommand;\r\n }\r\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\r\n };\r\n Source.prototype.initialCommandIsMoveTo = function () {\r\n // If the path is empty it is still valid, so return true.\r\n if (!this.hasMoreData())\r\n return true;\r\n var command = this.peekSegmentType();\r\n // Path must start with moveTo.\r\n return (command == window.SVGPathSeg.PATHSEG_MOVETO_ABS ||\r\n command == window.SVGPathSeg.PATHSEG_MOVETO_REL);\r\n };\r\n // Parse a number from an SVG path. This very closely follows genericParseNumber(...) from Source/core/svg/SVGParserUtilities.cpp.\r\n // Spec: http://www.w3.org/TR/SVG11/single-page.html#paths-PathDataBNF\r\n Source.prototype._parseNumber = function () {\r\n var exponent = 0;\r\n var integer = 0;\r\n var frac = 1;\r\n var decimal = 0;\r\n var sign = 1;\r\n var expsign = 1;\r\n var startIndex = this._currentIndex;\r\n this._skipOptionalSpaces();\r\n // Read the sign.\r\n if (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) == '+')\r\n this._currentIndex++;\r\n else if (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) == '-') {\r\n this._currentIndex++;\r\n sign = -1;\r\n }\r\n if (this._currentIndex == this._endIndex ||\r\n ((this._string.charAt(this._currentIndex) < '0' ||\r\n this._string.charAt(this._currentIndex) > '9') &&\r\n this._string.charAt(this._currentIndex) != '.'))\r\n // The first character of a number must be one of [0-9+-.].\r\n return undefined;\r\n // Read the integer part, build right-to-left.\r\n var startIntPartIndex = this._currentIndex;\r\n while (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) >= '0' &&\r\n this._string.charAt(this._currentIndex) <= '9')\r\n this._currentIndex++; // Advance to first non-digit.\r\n if (this._currentIndex != startIntPartIndex) {\r\n var scanIntPartIndex = this._currentIndex - 1;\r\n var multiplier = 1;\r\n while (scanIntPartIndex >= startIntPartIndex) {\r\n integer +=\r\n multiplier * (this._string.charAt(scanIntPartIndex--) - '0');\r\n multiplier *= 10;\r\n }\r\n }\r\n // Read the decimals.\r\n if (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) == '.') {\r\n this._currentIndex++;\r\n // There must be a least one digit following the .\r\n if (this._currentIndex >= this._endIndex ||\r\n this._string.charAt(this._currentIndex) < '0' ||\r\n this._string.charAt(this._currentIndex) > '9')\r\n return undefined;\r\n while (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) >= '0' &&\r\n this._string.charAt(this._currentIndex) <= '9') {\r\n frac *= 10;\r\n decimal += (this._string.charAt(this._currentIndex) - '0') / frac;\r\n this._currentIndex += 1;\r\n }\r\n }\r\n // Read the exponent part.\r\n if (this._currentIndex != startIndex &&\r\n this._currentIndex + 1 < this._endIndex &&\r\n (this._string.charAt(this._currentIndex) == 'e' ||\r\n this._string.charAt(this._currentIndex) == 'E') &&\r\n this._string.charAt(this._currentIndex + 1) != 'x' &&\r\n this._string.charAt(this._currentIndex + 1) != 'm') {\r\n this._currentIndex++;\r\n // Read the sign of the exponent.\r\n if (this._string.charAt(this._currentIndex) == '+') {\r\n this._currentIndex++;\r\n }\r\n else if (this._string.charAt(this._currentIndex) == '-') {\r\n this._currentIndex++;\r\n expsign = -1;\r\n }\r\n // There must be an exponent.\r\n if (this._currentIndex >= this._endIndex ||\r\n this._string.charAt(this._currentIndex) < '0' ||\r\n this._string.charAt(this._currentIndex) > '9')\r\n return undefined;\r\n while (this._currentIndex < this._endIndex &&\r\n this._string.charAt(this._currentIndex) >= '0' &&\r\n this._string.charAt(this._currentIndex) <= '9') {\r\n exponent *= 10;\r\n exponent += this._string.charAt(this._currentIndex) - '0';\r\n this._currentIndex++;\r\n }\r\n }\r\n var number = integer + decimal;\r\n number *= sign;\r\n if (exponent)\r\n number *= Math.pow(10, expsign * exponent);\r\n if (startIndex == this._currentIndex)\r\n return undefined;\r\n this._skipOptionalSpacesOrDelimiter();\r\n return number;\r\n };\r\n Source.prototype._parseArcFlag = function () {\r\n if (this._currentIndex >= this._endIndex)\r\n return undefined;\r\n var flag = false;\r\n var flagChar = this._string.charAt(this._currentIndex++);\r\n if (flagChar == '0')\r\n flag = false;\r\n else if (flagChar == '1')\r\n flag = true;\r\n else\r\n return undefined;\r\n this._skipOptionalSpacesOrDelimiter();\r\n return flag;\r\n };\r\n Source.prototype.parseSegment = function () {\r\n var lookahead = this._string[this._currentIndex];\r\n var command = this._pathSegTypeFromChar(lookahead);\r\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\r\n // Possibly an implicit command. Not allowed if this is the first command.\r\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\r\n return null;\r\n command = this._nextCommandHelper(lookahead, this._previousCommand);\r\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\r\n return null;\r\n }\r\n else {\r\n this._currentIndex++;\r\n }\r\n this._previousCommand = command;\r\n switch (command) {\r\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\r\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\r\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\r\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\r\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\r\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\r\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\r\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\r\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\r\n this._skipOptionalSpaces();\r\n return new window.SVGPathSegClosePath(owningPathSegList);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n x2: this._parseNumber(),\r\n y2: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n x2: this._parseNumber(),\r\n y2: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\r\n var points = {\r\n x2: this._parseNumber(),\r\n y2: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\r\n var points = {\r\n x2: this._parseNumber(),\r\n y2: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\r\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\r\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\r\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\r\n case window.SVGPathSeg.PATHSEG_ARC_REL:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n arcAngle: this._parseNumber(),\r\n arcLarge: this._parseArcFlag(),\r\n arcSweep: this._parseArcFlag(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\r\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\r\n var points = {\r\n x1: this._parseNumber(),\r\n y1: this._parseNumber(),\r\n arcAngle: this._parseNumber(),\r\n arcLarge: this._parseArcFlag(),\r\n arcSweep: this._parseArcFlag(),\r\n x: this._parseNumber(),\r\n y: this._parseNumber()\r\n };\r\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\r\n default:\r\n throw 'Unknown path seg type.';\r\n }\r\n };\r\n var builder = new Builder();\r\n var source = new Source(string);\r\n if (!source.initialCommandIsMoveTo())\r\n return [];\r\n while (source.hasMoreData()) {\r\n var pathSeg = source.parseSegment();\r\n if (!pathSeg)\r\n return [];\r\n builder.appendSegment(pathSeg);\r\n }\r\n return builder.pathSegList;\r\n };\r\n }\r\n })();\r\n // String.padEnd polyfill for IE11\r\n //\r\n // https://github.com/uxitten/polyfill/blob/master/string.polyfill.js\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd\r\n if (!String.prototype.padEnd) {\r\n String.prototype.padEnd = function padEnd(targetLength, padString) {\r\n targetLength = targetLength >> 0; //floor if number or convert non-number to 0;\r\n padString = String(typeof padString !== 'undefined' ? padString : ' ');\r\n if (this.length > targetLength) {\r\n return String(this);\r\n }\r\n else {\r\n targetLength = targetLength - this.length;\r\n if (targetLength > padString.length) {\r\n padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\r\n }\r\n return String(this) + padString.slice(0, targetLength);\r\n }\r\n };\r\n }\r\n // Object.assign polyfill for IE11\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill\r\n if (typeof Object.assign !== 'function') {\r\n // Must be writable: true, enumerable: false, configurable: true\r\n Object.defineProperty(Object, 'assign', {\r\n value: function assign(target, varArgs) {\r\n if (target === null || target === undefined) {\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n var to = Object(target);\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n if (nextSource !== null && nextSource !== undefined) {\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n },\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n /* jshint ignore:end */\n\n Chart.prototype.axis = function () { };\r\n Chart.prototype.axis.labels = function (labels) {\r\n var $$ = this.internal;\r\n if (arguments.length) {\r\n Object.keys(labels).forEach(function (axisId) {\r\n $$.axis.setLabelText(axisId, labels[axisId]);\r\n });\r\n $$.axis.updateLabels();\r\n }\r\n // TODO: return some values?\r\n };\r\n Chart.prototype.axis.max = function (max) {\r\n var $$ = this.internal, config = $$.config;\r\n if (arguments.length) {\r\n if (typeof max === 'object') {\r\n if (isValue(max.x)) {\r\n config.axis_x_max = max.x;\r\n }\r\n if (isValue(max.y)) {\r\n config.axis_y_max = max.y;\r\n }\r\n if (isValue(max.y2)) {\r\n config.axis_y2_max = max.y2;\r\n }\r\n }\r\n else {\r\n config.axis_y_max = config.axis_y2_max = max;\r\n }\r\n $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true });\r\n }\r\n else {\r\n return {\r\n x: config.axis_x_max,\r\n y: config.axis_y_max,\r\n y2: config.axis_y2_max\r\n };\r\n }\r\n };\r\n Chart.prototype.axis.min = function (min) {\r\n var $$ = this.internal, config = $$.config;\r\n if (arguments.length) {\r\n if (typeof min === 'object') {\r\n if (isValue(min.x)) {\r\n config.axis_x_min = min.x;\r\n }\r\n if (isValue(min.y)) {\r\n config.axis_y_min = min.y;\r\n }\r\n if (isValue(min.y2)) {\r\n config.axis_y2_min = min.y2;\r\n }\r\n }\r\n else {\r\n config.axis_y_min = config.axis_y2_min = min;\r\n }\r\n $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true });\r\n }\r\n else {\r\n return {\r\n x: config.axis_x_min,\r\n y: config.axis_y_min,\r\n y2: config.axis_y2_min\r\n };\r\n }\r\n };\r\n Chart.prototype.axis.range = function (range) {\r\n if (arguments.length) {\r\n if (isDefined(range.max)) {\r\n this.axis.max(range.max);\r\n }\r\n if (isDefined(range.min)) {\r\n this.axis.min(range.min);\r\n }\r\n }\r\n else {\r\n return {\r\n max: this.axis.max(),\r\n min: this.axis.min()\r\n };\r\n }\r\n };\r\n Chart.prototype.axis.types = function (types) {\r\n var $$ = this.internal;\r\n if (types === undefined) {\r\n return {\r\n y: $$.config.axis_y_type,\r\n y2: $$.config.axis_y2_type\r\n };\r\n }\r\n else {\r\n if (isDefined(types.y)) {\r\n $$.config.axis_y_type = types.y;\r\n }\r\n if (isDefined(types.y2)) {\r\n $$.config.axis_y2_type = types.y2;\r\n }\r\n $$.updateScales();\r\n $$.redraw();\r\n }\r\n };\n\n Chart.prototype.category = function (i, category) {\r\n var $$ = this.internal, config = $$.config;\r\n if (arguments.length > 1) {\r\n config.axis_x_categories[i] = category;\r\n $$.redraw();\r\n }\r\n return config.axis_x_categories[i];\r\n };\r\n Chart.prototype.categories = function (categories) {\r\n var $$ = this.internal, config = $$.config;\r\n if (!arguments.length) {\r\n return config.axis_x_categories;\r\n }\r\n config.axis_x_categories = categories;\r\n $$.redraw();\r\n return config.axis_x_categories;\r\n };\n\n Chart.prototype.resize = function (size) {\r\n var $$ = this.internal, config = $$.config;\r\n config.size_width = size ? size.width : null;\r\n config.size_height = size ? size.height : null;\r\n this.flush();\r\n };\r\n Chart.prototype.flush = function () {\r\n var $$ = this.internal;\r\n $$.updateAndRedraw({\r\n withLegend: true,\r\n withTransition: false,\r\n withTransitionForTransform: false\r\n });\r\n };\r\n Chart.prototype.destroy = function () {\r\n var $$ = this.internal;\r\n window.clearInterval($$.intervalForObserveInserted);\r\n if ($$.resizeTimeout !== undefined) {\r\n window.clearTimeout($$.resizeTimeout);\r\n }\r\n window.removeEventListener('resize', $$.resizeIfElementDisplayed);\r\n // Removes the inner resize functions\r\n $$.resizeFunction.remove();\r\n // Unbinds from the window focus event\r\n $$.unbindWindowFocus();\r\n $$.selectChart.classed('c3', false).html('');\r\n // MEMO: this is needed because the reference of some elements will not be released, then memory leak will happen.\r\n Object.keys($$).forEach(function (key) {\r\n $$[key] = null;\r\n });\r\n return null;\r\n };\n\n // TODO: fix\r\n Chart.prototype.color = function (id) {\r\n var $$ = this.internal;\r\n return $$.color(id); // more patterns\r\n };\n\n Chart.prototype.data = function (targetIds) {\r\n var targets = this.internal.data.targets;\r\n return typeof targetIds === 'undefined'\r\n ? targets\r\n : targets.filter(function (t) {\r\n return [].concat(targetIds).indexOf(t.id) >= 0;\r\n });\r\n };\r\n Chart.prototype.data.shown = function (targetIds) {\r\n return this.internal.filterTargetsToShow(this.data(targetIds));\r\n };\r\n /**\r\n * Get values of the data loaded in the chart.\r\n *\r\n * @param {String|Array} targetId This API returns the value of specified target.\r\n * @param flat\r\n * @return {Array} Data values\r\n */\r\n Chart.prototype.data.values = function (targetId, flat) {\r\n if (flat === void 0) { flat = true; }\r\n var values = null;\r\n if (targetId) {\r\n var targets = this.data(targetId);\r\n if (targets && isArray(targets)) {\r\n values = targets.reduce(function (ret, v) {\r\n var dataValue = v.values.map(function (d) { return d.value; });\r\n if (flat) {\r\n ret = ret.concat(dataValue);\r\n }\r\n else {\r\n ret.push(dataValue);\r\n }\r\n return ret;\r\n }, []);\r\n }\r\n }\r\n return values;\r\n };\r\n Chart.prototype.data.names = function (names) {\r\n this.internal.clearLegendItemTextBoxCache();\r\n return this.internal.updateDataAttributes('names', names);\r\n };\r\n Chart.prototype.data.colors = function (colors) {\r\n return this.internal.updateDataAttributes('colors', colors);\r\n };\r\n Chart.prototype.data.axes = function (axes) {\r\n return this.internal.updateDataAttributes('axes', axes);\r\n };\r\n Chart.prototype.data.stackNormalized = function (normalized) {\r\n if (normalized === undefined) {\r\n return this.internal.isStackNormalized();\r\n }\r\n this.internal.config.data_stack_normalize = !!normalized;\r\n this.internal.redraw();\r\n };\n\n Chart.prototype.donut = function () { };\r\n Chart.prototype.donut.padAngle = function (padAngle) {\r\n if (padAngle === undefined) {\r\n return this.internal.config.donut_padAngle;\r\n }\r\n this.internal.config.donut_padAngle = padAngle;\r\n this.flush();\r\n };\n\n Chart.prototype.flow = function (args) {\r\n var $$ = this.internal, targets, data, notfoundIds = [], orgDataCount = $$.getMaxDataCount(), dataCount, domain, baseTarget, baseValue, length = 0, tail = 0, diff, to;\r\n if (args.json) {\r\n data = $$.convertJsonToData(args.json, args.keys);\r\n }\r\n else if (args.rows) {\r\n data = $$.convertRowsToData(args.rows);\r\n }\r\n else if (args.columns) {\r\n data = $$.convertColumnsToData(args.columns);\r\n }\r\n else {\r\n return;\r\n }\r\n targets = $$.convertDataToTargets(data, true);\r\n // Update/Add data\r\n $$.data.targets.forEach(function (t) {\r\n var found = false, i, j;\r\n for (i = 0; i < targets.length; i++) {\r\n if (t.id === targets[i].id) {\r\n found = true;\r\n if (t.values[t.values.length - 1]) {\r\n tail = t.values[t.values.length - 1].index + 1;\r\n }\r\n length = targets[i].values.length;\r\n for (j = 0; j < length; j++) {\r\n targets[i].values[j].index = tail + j;\r\n if (!$$.isTimeSeries()) {\r\n targets[i].values[j].x = tail + j;\r\n }\r\n }\r\n t.values = t.values.concat(targets[i].values);\r\n targets.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n notfoundIds.push(t.id);\r\n }\r\n });\r\n // Append null for not found targets\r\n $$.data.targets.forEach(function (t) {\r\n var i, j;\r\n for (i = 0; i < notfoundIds.length; i++) {\r\n if (t.id === notfoundIds[i]) {\r\n tail = t.values[t.values.length - 1].index + 1;\r\n for (j = 0; j < length; j++) {\r\n t.values.push({\r\n id: t.id,\r\n index: tail + j,\r\n x: $$.isTimeSeries() ? $$.getOtherTargetX(tail + j) : tail + j,\r\n value: null\r\n });\r\n }\r\n }\r\n }\r\n });\r\n // Generate null values for new target\r\n if ($$.data.targets.length) {\r\n targets.forEach(function (t) {\r\n var i, missing = [];\r\n for (i = $$.data.targets[0].values[0].index; i < tail; i++) {\r\n missing.push({\r\n id: t.id,\r\n index: i,\r\n x: $$.isTimeSeries() ? $$.getOtherTargetX(i) : i,\r\n value: null\r\n });\r\n }\r\n t.values.forEach(function (v) {\r\n v.index += tail;\r\n if (!$$.isTimeSeries()) {\r\n v.x += tail;\r\n }\r\n });\r\n t.values = missing.concat(t.values);\r\n });\r\n }\r\n $$.data.targets = $$.data.targets.concat(targets); // add remained\r\n // check data count because behavior needs to change when it's only one\r\n dataCount = $$.getMaxDataCount();\r\n baseTarget = $$.data.targets[0];\r\n baseValue = baseTarget.values[0];\r\n // Update length to flow if needed\r\n if (isDefined(args.to)) {\r\n length = 0;\r\n to = $$.isTimeSeries() ? $$.parseDate(args.to) : args.to;\r\n baseTarget.values.forEach(function (v) {\r\n if (v.x < to) {\r\n length++;\r\n }\r\n });\r\n }\r\n else if (isDefined(args.length)) {\r\n length = args.length;\r\n }\r\n // If only one data, update the domain to flow from left edge of the chart\r\n if (!orgDataCount) {\r\n if ($$.isTimeSeries()) {\r\n if (baseTarget.values.length > 1) {\r\n diff = baseTarget.values[baseTarget.values.length - 1].x - baseValue.x;\r\n }\r\n else {\r\n diff = baseValue.x - $$.getXDomain($$.data.targets)[0];\r\n }\r\n }\r\n else {\r\n diff = 1;\r\n }\r\n domain = [baseValue.x - diff, baseValue.x];\r\n $$.updateXDomain(null, true, true, false, domain);\r\n }\r\n else if (orgDataCount === 1) {\r\n if ($$.isTimeSeries()) {\r\n diff =\r\n (baseTarget.values[baseTarget.values.length - 1].x - baseValue.x) / 2;\r\n domain = [new Date(+baseValue.x - diff), new Date(+baseValue.x + diff)];\r\n $$.updateXDomain(null, true, true, false, domain);\r\n }\r\n }\r\n // Set targets\r\n $$.updateTargets($$.data.targets);\r\n // Redraw with new targets\r\n $$.redraw({\r\n flow: {\r\n index: baseValue.index,\r\n length: length,\r\n duration: isValue(args.duration)\r\n ? args.duration\r\n : $$.config.transition_duration,\r\n done: args.done,\r\n orgDataCount: orgDataCount\r\n },\r\n withLegend: true,\r\n withTransition: orgDataCount > 1,\r\n withTrimXDomain: false,\r\n withUpdateXAxis: true\r\n });\r\n };\r\n ChartInternal.prototype.generateFlow = function (args) {\r\n var $$ = this, config = $$.config, d3 = $$.d3;\r\n return function () {\r\n var targets = args.targets, flow = args.flow, drawBar = args.drawBar, drawLine = args.drawLine, drawArea = args.drawArea, cx = args.cx, cy = args.cy, xv = args.xv, xForText = args.xForText, yForText = args.yForText, duration = args.duration;\r\n var translateX, scaleX = 1, transform, flowIndex = flow.index, flowLength = flow.length, flowStart = $$.getValueOnIndex($$.data.targets[0].values, flowIndex), flowEnd = $$.getValueOnIndex($$.data.targets[0].values, flowIndex + flowLength), orgDomain = $$.x.domain(), domain, durationForFlow = flow.duration || duration, done = flow.done || function () { }, wait = $$.generateWait();\r\n var xgrid, xgridLines, mainRegion, mainText, mainBar, mainLine, mainArea, mainCircle;\r\n // set flag\r\n $$.flowing = true;\r\n // remove head data after rendered\r\n $$.data.targets.forEach(function (d) {\r\n d.values.splice(0, flowLength);\r\n });\r\n // update x domain to generate axis elements for flow\r\n domain = $$.updateXDomain(targets, true, true);\r\n // update elements related to x scale\r\n if ($$.updateXGrid) {\r\n $$.updateXGrid(true);\r\n }\r\n xgrid = $$.xgrid || d3.selectAll([]); // xgrid needs to be obtained after updateXGrid\r\n xgridLines = $$.xgridLines || d3.selectAll([]);\r\n mainRegion = $$.mainRegion || d3.selectAll([]);\r\n mainText = $$.mainText || d3.selectAll([]);\r\n mainBar = $$.mainBar || d3.selectAll([]);\r\n mainLine = $$.mainLine || d3.selectAll([]);\r\n mainArea = $$.mainArea || d3.selectAll([]);\r\n mainCircle = $$.mainCircle || d3.selectAll([]);\r\n // generate transform to flow\r\n if (!flow.orgDataCount) {\r\n // if empty\r\n if ($$.data.targets[0].values.length !== 1) {\r\n translateX = $$.x(orgDomain[0]) - $$.x(domain[0]);\r\n }\r\n else {\r\n if ($$.isTimeSeries()) {\r\n flowStart = $$.getValueOnIndex($$.data.targets[0].values, 0);\r\n flowEnd = $$.getValueOnIndex($$.data.targets[0].values, $$.data.targets[0].values.length - 1);\r\n translateX = $$.x(flowStart.x) - $$.x(flowEnd.x);\r\n }\r\n else {\r\n translateX = diffDomain(domain) / 2;\r\n }\r\n }\r\n }\r\n else if (flow.orgDataCount === 1 ||\r\n (flowStart && flowStart.x) === (flowEnd && flowEnd.x)) {\r\n translateX = $$.x(orgDomain[0]) - $$.x(domain[0]);\r\n }\r\n else {\r\n if ($$.isTimeSeries()) {\r\n translateX = $$.x(orgDomain[0]) - $$.x(domain[0]);\r\n }\r\n else {\r\n translateX = $$.x(flowStart.x) - $$.x(flowEnd.x);\r\n }\r\n }\r\n scaleX = diffDomain(orgDomain) / diffDomain(domain);\r\n transform = 'translate(' + translateX + ',0) scale(' + scaleX + ',1)';\r\n $$.hideXGridFocus();\r\n var flowTransition = d3\r\n .transition()\r\n .ease(d3.easeLinear)\r\n .duration(durationForFlow);\r\n wait.add($$.xAxis($$.axes.x, flowTransition));\r\n wait.add(mainBar.transition(flowTransition).attr('transform', transform));\r\n wait.add(mainLine.transition(flowTransition).attr('transform', transform));\r\n wait.add(mainArea.transition(flowTransition).attr('transform', transform));\r\n wait.add(mainCircle.transition(flowTransition).attr('transform', transform));\r\n wait.add(mainText.transition(flowTransition).attr('transform', transform));\r\n wait.add(mainRegion\r\n .filter($$.isRegionOnX)\r\n .transition(flowTransition)\r\n .attr('transform', transform));\r\n wait.add(xgrid.transition(flowTransition).attr('transform', transform));\r\n wait.add(xgridLines.transition(flowTransition).attr('transform', transform));\r\n wait(function () {\r\n var i, shapes = [], texts = [];\r\n // remove flowed elements\r\n if (flowLength) {\r\n for (i = 0; i < flowLength; i++) {\r\n shapes.push('.' + CLASS.shape + '-' + (flowIndex + i));\r\n texts.push('.' + CLASS.text + '-' + (flowIndex + i));\r\n }\r\n $$.svg\r\n .selectAll('.' + CLASS.shapes)\r\n .selectAll(shapes)\r\n .remove();\r\n $$.svg\r\n .selectAll('.' + CLASS.texts)\r\n .selectAll(texts)\r\n .remove();\r\n $$.svg.select('.' + CLASS.xgrid).remove();\r\n }\r\n // draw again for removing flowed elements and reverting attr\r\n xgrid\r\n .attr('transform', null)\r\n .attr('x1', $$.xgridAttr.x1)\r\n .attr('x2', $$.xgridAttr.x2)\r\n .attr('y1', $$.xgridAttr.y1)\r\n .attr('y2', $$.xgridAttr.y2)\r\n .style('opacity', $$.xgridAttr.opacity);\r\n xgridLines.attr('transform', null);\r\n xgridLines\r\n .select('line')\r\n .attr('x1', config.axis_rotated ? 0 : xv)\r\n .attr('x2', config.axis_rotated ? $$.width : xv);\r\n xgridLines\r\n .select('text')\r\n .attr('x', config.axis_rotated ? $$.width : 0)\r\n .attr('y', xv);\r\n mainBar.attr('transform', null).attr('d', drawBar);\r\n mainLine.attr('transform', null).attr('d', drawLine);\r\n mainArea.attr('transform', null).attr('d', drawArea);\r\n mainCircle\r\n .attr('transform', null)\r\n .attr('cx', cx)\r\n .attr('cy', cy);\r\n mainText\r\n .attr('transform', null)\r\n .attr('x', xForText)\r\n .attr('y', yForText)\r\n .style('fill-opacity', $$.opacityForText.bind($$));\r\n mainRegion.attr('transform', null);\r\n mainRegion\r\n .filter($$.isRegionOnX)\r\n .attr('x', $$.regionX.bind($$))\r\n .attr('width', $$.regionWidth.bind($$));\r\n // callback for end of flow\r\n done();\r\n $$.flowing = false;\r\n });\r\n };\r\n };\n\n Chart.prototype.focus = function (targetIds) {\r\n var $$ = this.internal, candidates;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n (candidates = $$.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)))),\r\n this.revert();\r\n this.defocus();\r\n candidates.classed(CLASS.focused, true).classed(CLASS.defocused, false);\r\n if ($$.hasArcType()) {\r\n $$.expandArc(targetIds);\r\n }\r\n $$.toggleFocusLegend(targetIds, true);\r\n $$.focusedTargetIds = targetIds;\r\n $$.defocusedTargetIds = $$.defocusedTargetIds.filter(function (id) {\r\n return targetIds.indexOf(id) < 0;\r\n });\r\n };\r\n Chart.prototype.defocus = function (targetIds) {\r\n var $$ = this.internal, candidates;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n (candidates = $$.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)))),\r\n candidates.classed(CLASS.focused, false).classed(CLASS.defocused, true);\r\n if ($$.hasArcType()) {\r\n $$.unexpandArc(targetIds);\r\n }\r\n $$.toggleFocusLegend(targetIds, false);\r\n $$.focusedTargetIds = $$.focusedTargetIds.filter(function (id) {\r\n return targetIds.indexOf(id) < 0;\r\n });\r\n $$.defocusedTargetIds = targetIds;\r\n };\r\n Chart.prototype.revert = function (targetIds) {\r\n var $$ = this.internal, candidates;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n candidates = $$.svg.selectAll($$.selectorTargets(targetIds)); // should be for all targets\r\n candidates.classed(CLASS.focused, false).classed(CLASS.defocused, false);\r\n if ($$.hasArcType()) {\r\n $$.unexpandArc(targetIds);\r\n }\r\n if ($$.config.legend_show) {\r\n $$.showLegend(targetIds.filter($$.isLegendToShow.bind($$)));\r\n $$.legend\r\n .selectAll($$.selectorLegends(targetIds))\r\n .filter(function () {\r\n return $$.d3.select(this).classed(CLASS.legendItemFocused);\r\n })\r\n .classed(CLASS.legendItemFocused, false);\r\n }\r\n $$.focusedTargetIds = [];\r\n $$.defocusedTargetIds = [];\r\n };\n\n Chart.prototype.xgrids = function (grids) {\r\n var $$ = this.internal, config = $$.config;\r\n if (!grids) {\r\n return config.grid_x_lines;\r\n }\r\n config.grid_x_lines = grids;\r\n $$.redrawWithoutRescale();\r\n return config.grid_x_lines;\r\n };\r\n Chart.prototype.xgrids.add = function (grids) {\r\n var $$ = this.internal;\r\n return this.xgrids($$.config.grid_x_lines.concat(grids ? grids : []));\r\n };\r\n Chart.prototype.xgrids.remove = function (params) {\r\n // TODO: multiple\r\n var $$ = this.internal;\r\n $$.removeGridLines(params, true);\r\n };\r\n Chart.prototype.ygrids = function (grids) {\r\n var $$ = this.internal, config = $$.config;\r\n if (!grids) {\r\n return config.grid_y_lines;\r\n }\r\n config.grid_y_lines = grids;\r\n $$.redrawWithoutRescale();\r\n return config.grid_y_lines;\r\n };\r\n Chart.prototype.ygrids.add = function (grids) {\r\n var $$ = this.internal;\r\n return this.ygrids($$.config.grid_y_lines.concat(grids ? grids : []));\r\n };\r\n Chart.prototype.ygrids.remove = function (params) {\r\n // TODO: multiple\r\n var $$ = this.internal;\r\n $$.removeGridLines(params, false);\r\n };\n\n Chart.prototype.groups = function (groups) {\r\n var $$ = this.internal, config = $$.config;\r\n if (isUndefined(groups)) {\r\n return config.data_groups;\r\n }\r\n config.data_groups = groups;\r\n $$.redraw();\r\n return config.data_groups;\r\n };\n\n Chart.prototype.legend = function () { };\r\n Chart.prototype.legend.show = function (targetIds) {\r\n var $$ = this.internal;\r\n $$.showLegend($$.mapToTargetIds(targetIds));\r\n $$.updateAndRedraw({ withLegend: true });\r\n };\r\n Chart.prototype.legend.hide = function (targetIds) {\r\n var $$ = this.internal;\r\n $$.hideLegend($$.mapToTargetIds(targetIds));\r\n $$.updateAndRedraw({ withLegend: false });\r\n };\n\n Chart.prototype.load = function (args) {\r\n var $$ = this.internal, config = $$.config;\r\n // update xs if specified\r\n if (args.xs) {\r\n $$.addXs(args.xs);\r\n }\r\n // update names if exists\r\n if ('names' in args) {\r\n Chart.prototype.data.names.bind(this)(args.names);\r\n }\r\n // update classes if exists\r\n if ('classes' in args) {\r\n Object.keys(args.classes).forEach(function (id) {\r\n config.data_classes[id] = args.classes[id];\r\n });\r\n }\r\n // update categories if exists\r\n if ('categories' in args && $$.isCategorized()) {\r\n config.axis_x_categories = args.categories;\r\n }\r\n // update axes if exists\r\n if ('axes' in args) {\r\n Object.keys(args.axes).forEach(function (id) {\r\n config.data_axes[id] = args.axes[id];\r\n });\r\n }\r\n // update colors if exists\r\n if ('colors' in args) {\r\n Object.keys(args.colors).forEach(function (id) {\r\n config.data_colors[id] = args.colors[id];\r\n });\r\n }\r\n // use cache if exists\r\n if ('cacheIds' in args && $$.hasCaches(args.cacheIds)) {\r\n $$.load($$.getCaches(args.cacheIds), args.done);\r\n return;\r\n }\r\n // unload if needed\r\n if (args.unload) {\r\n // TODO: do not unload if target will load (included in url/rows/columns)\r\n $$.unload($$.mapToTargetIds(args.unload === true ? null : args.unload), function () {\r\n $$.loadFromArgs(args);\r\n });\r\n }\r\n else {\r\n $$.loadFromArgs(args);\r\n }\r\n };\r\n Chart.prototype.unload = function (args) {\r\n var $$ = this.internal;\r\n args = args || {};\r\n if (args instanceof Array) {\r\n args = { ids: args };\r\n }\r\n else if (typeof args === 'string') {\r\n args = { ids: [args] };\r\n }\r\n $$.unload($$.mapToTargetIds(args.ids), function () {\r\n $$.redraw({\r\n withUpdateOrgXDomain: true,\r\n withUpdateXDomain: true,\r\n withLegend: true\r\n });\r\n if (args.done) {\r\n args.done();\r\n }\r\n });\r\n };\n\n Chart.prototype.pie = function () { };\r\n Chart.prototype.pie.padAngle = function (padAngle) {\r\n if (padAngle === undefined) {\r\n return this.internal.config.pie_padAngle;\r\n }\r\n this.internal.config.pie_padAngle = padAngle;\r\n this.flush();\r\n };\n\n Chart.prototype.regions = function (regions) {\r\n var $$ = this.internal, config = $$.config;\r\n if (!regions) {\r\n return config.regions;\r\n }\r\n config.regions = regions;\r\n $$.redrawWithoutRescale();\r\n return config.regions;\r\n };\r\n Chart.prototype.regions.add = function (regions) {\r\n var $$ = this.internal, config = $$.config;\r\n if (!regions) {\r\n return config.regions;\r\n }\r\n config.regions = config.regions.concat(regions);\r\n $$.redrawWithoutRescale();\r\n return config.regions;\r\n };\r\n Chart.prototype.regions.remove = function (options) {\r\n var $$ = this.internal, config = $$.config, duration, classes, regions;\r\n options = options || {};\r\n duration = getOption(options, 'duration', config.transition_duration);\r\n classes = getOption(options, 'classes', [CLASS.region]);\r\n regions = $$.main.select('.' + CLASS.regions).selectAll(classes.map(function (c) {\r\n return '.' + c;\r\n }));\r\n (duration ? regions.transition().duration(duration) : regions)\r\n .style('opacity', 0)\r\n .remove();\r\n config.regions = config.regions.filter(function (region) {\r\n var found = false;\r\n if (!region['class']) {\r\n return true;\r\n }\r\n region['class'].split(' ').forEach(function (c) {\r\n if (classes.indexOf(c) >= 0) {\r\n found = true;\r\n }\r\n });\r\n return !found;\r\n });\r\n return config.regions;\r\n };\n\n Chart.prototype.selected = function (targetId) {\r\n var $$ = this.internal, d3 = $$.d3;\r\n return $$.main\r\n .selectAll('.' + CLASS.shapes + $$.getTargetSelectorSuffix(targetId))\r\n .selectAll('.' + CLASS.shape)\r\n .filter(function () {\r\n return d3.select(this).classed(CLASS.SELECTED);\r\n })\r\n .nodes()\r\n .map(function (d) {\r\n var data = d.__data__;\r\n return data.data ? data.data : data;\r\n });\r\n };\r\n Chart.prototype.select = function (ids, indices, resetOther) {\r\n var $$ = this.internal, d3 = $$.d3, config = $$.config;\r\n if (!config.data_selection_enabled) {\r\n return;\r\n }\r\n $$.main\r\n .selectAll('.' + CLASS.shapes)\r\n .selectAll('.' + CLASS.shape)\r\n .each(function (d, i) {\r\n var shape = d3.select(this), id = d.data ? d.data.id : d.id, toggle = $$.getToggle(this, d).bind($$), isTargetId = config.data_selection_grouped || !ids || ids.indexOf(id) >= 0, isTargetIndex = !indices || indices.indexOf(i) >= 0, isSelected = shape.classed(CLASS.SELECTED);\r\n // line/area selection not supported yet\r\n if (shape.classed(CLASS.line) || shape.classed(CLASS.area)) {\r\n return;\r\n }\r\n if (isTargetId && isTargetIndex) {\r\n if (config.data_selection_isselectable(d) && !isSelected) {\r\n toggle(true, shape.classed(CLASS.SELECTED, true), d, i);\r\n }\r\n }\r\n else if (isDefined(resetOther) && resetOther) {\r\n if (isSelected) {\r\n toggle(false, shape.classed(CLASS.SELECTED, false), d, i);\r\n }\r\n }\r\n });\r\n };\r\n Chart.prototype.unselect = function (ids, indices) {\r\n var $$ = this.internal, d3 = $$.d3, config = $$.config;\r\n if (!config.data_selection_enabled) {\r\n return;\r\n }\r\n $$.main\r\n .selectAll('.' + CLASS.shapes)\r\n .selectAll('.' + CLASS.shape)\r\n .each(function (d, i) {\r\n var shape = d3.select(this), id = d.data ? d.data.id : d.id, toggle = $$.getToggle(this, d).bind($$), isTargetId = config.data_selection_grouped || !ids || ids.indexOf(id) >= 0, isTargetIndex = !indices || indices.indexOf(i) >= 0, isSelected = shape.classed(CLASS.SELECTED);\r\n // line/area selection not supported yet\r\n if (shape.classed(CLASS.line) || shape.classed(CLASS.area)) {\r\n return;\r\n }\r\n if (isTargetId && isTargetIndex) {\r\n if (config.data_selection_isselectable(d)) {\r\n if (isSelected) {\r\n toggle(false, shape.classed(CLASS.SELECTED, false), d, i);\r\n }\r\n }\r\n }\r\n });\r\n };\n\n Chart.prototype.show = function (targetIds, options) {\r\n var $$ = this.internal, targets;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n options = options || {};\r\n $$.removeHiddenTargetIds(targetIds);\r\n targets = $$.svg.selectAll($$.selectorTargets(targetIds));\r\n targets\r\n .transition()\r\n .style('display', isIE() ? 'block' : 'initial', 'important')\r\n .style('opacity', 1, 'important')\r\n .call($$.endall, function () {\r\n targets.style('opacity', null).style('opacity', 1);\r\n });\r\n if (options.withLegend) {\r\n $$.showLegend(targetIds);\r\n }\r\n $$.redraw({\r\n withUpdateOrgXDomain: true,\r\n withUpdateXDomain: true,\r\n withLegend: true\r\n });\r\n };\r\n Chart.prototype.hide = function (targetIds, options) {\r\n var $$ = this.internal, targets;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n options = options || {};\r\n $$.addHiddenTargetIds(targetIds);\r\n targets = $$.svg.selectAll($$.selectorTargets(targetIds));\r\n targets\r\n .transition()\r\n .style('opacity', 0, 'important')\r\n .call($$.endall, function () {\r\n targets.style('opacity', null).style('opacity', 0);\r\n targets.style('display', 'none');\r\n });\r\n if (options.withLegend) {\r\n $$.hideLegend(targetIds);\r\n }\r\n $$.redraw({\r\n withUpdateOrgXDomain: true,\r\n withUpdateXDomain: true,\r\n withLegend: true\r\n });\r\n };\r\n Chart.prototype.toggle = function (targetIds, options) {\r\n var that = this, $$ = this.internal;\r\n $$.mapToTargetIds(targetIds).forEach(function (targetId) {\r\n $$.isTargetToShow(targetId)\r\n ? that.hide(targetId, options)\r\n : that.show(targetId, options);\r\n });\r\n };\n\n Chart.prototype.subchart = function () { };\r\n Chart.prototype.subchart.isShown = function () {\r\n var $$ = this.internal;\r\n return $$.config.subchart_show;\r\n };\r\n Chart.prototype.subchart.show = function () {\r\n var $$ = this.internal;\r\n if ($$.config.subchart_show) {\r\n return;\r\n }\r\n $$.config.subchart_show = true;\r\n // insert DOM\r\n $$.initSubchart();\r\n // update dimensions with sub chart now visible\r\n $$.updateDimension();\r\n // insert brush (depends on sizes previously updated)\r\n $$.initSubchartBrush();\r\n // attach data\r\n $$.updateTargetsForSubchart($$.getTargets());\r\n // reset fade-in state\r\n $$.mapToIds($$.data.targets).forEach(function (id) {\r\n $$.withoutFadeIn[id] = false;\r\n });\r\n // redraw chart !\r\n $$.updateAndRedraw();\r\n // update visible targets !\r\n $$.showTargets();\r\n };\r\n Chart.prototype.subchart.hide = function () {\r\n var $$ = this.internal;\r\n if (!$$.config.subchart_show) {\r\n return;\r\n }\r\n $$.config.subchart_show = false;\r\n // remove DOM\r\n $$.removeSubchart();\r\n // re-render chart\r\n $$.redraw();\r\n };\n\n Chart.prototype.tooltip = function () { };\r\n Chart.prototype.tooltip.show = function (args) {\r\n var $$ = this.internal, targets, data, mouse = {};\r\n // determine mouse position on the chart\r\n if (args.mouse) {\r\n mouse = args.mouse;\r\n }\r\n else {\r\n // determine focus data\r\n if (args.data) {\r\n data = args.data;\r\n }\r\n else if (typeof args.x !== 'undefined') {\r\n if (args.id) {\r\n targets = $$.data.targets.filter(function (t) {\r\n return t.id === args.id;\r\n });\r\n }\r\n else {\r\n targets = $$.data.targets;\r\n }\r\n data = $$.filterByX(targets, args.x).slice(0, 1)[0];\r\n }\r\n mouse = data ? $$.getMousePosition(data) : null;\r\n }\r\n // emulate mouse events to show\r\n $$.dispatchEvent('mousemove', mouse);\r\n $$.config.tooltip_onshow.call($$, data);\r\n };\r\n Chart.prototype.tooltip.hide = function () {\r\n // TODO: get target data by checking the state of focus\r\n this.internal.dispatchEvent('mouseout', 0);\r\n this.internal.config.tooltip_onhide.call(this);\r\n };\n\n Chart.prototype.transform = function (type, targetIds) {\r\n var $$ = this.internal, options = ['pie', 'donut'].indexOf(type) >= 0 ? { withTransform: true } : null;\r\n $$.transformTo(targetIds, type, options);\r\n };\r\n ChartInternal.prototype.transformTo = function (targetIds, type, optionsForRedraw) {\r\n var $$ = this, withTransitionForAxis = !$$.hasArcType(), options = optionsForRedraw || {\r\n withTransitionForAxis: withTransitionForAxis\r\n };\r\n options.withTransitionForTransform = false;\r\n $$.transiting = false;\r\n $$.setTargetType(targetIds, type);\r\n $$.updateTargets($$.data.targets); // this is needed when transforming to arc\r\n $$.updateAndRedraw(options);\r\n };\n\n Chart.prototype.x = function (x) {\r\n var $$ = this.internal;\r\n if (arguments.length) {\r\n $$.updateTargetX($$.data.targets, x);\r\n $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true });\r\n }\r\n return $$.data.xs;\r\n };\r\n Chart.prototype.xs = function (xs) {\r\n var $$ = this.internal;\r\n if (arguments.length) {\r\n $$.updateTargetXs($$.data.targets, xs);\r\n $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true });\r\n }\r\n return $$.data.xs;\r\n };\n\n Chart.prototype.zoom = function (domain) {\r\n var $$ = this.internal;\r\n if (domain) {\r\n if ($$.isTimeSeries()) {\r\n domain = domain.map(function (x) {\r\n return $$.parseDate(x);\r\n });\r\n }\r\n if ($$.config.subchart_show) {\r\n $$.brush.selectionAsValue(domain, true);\r\n }\r\n else {\r\n $$.updateXDomain(null, true, false, false, domain);\r\n $$.redraw({ withY: $$.config.zoom_rescale, withSubchart: false });\r\n }\r\n $$.config.zoom_onzoom.call(this, $$.x.orgDomain());\r\n return domain;\r\n }\r\n else {\r\n return $$.x.domain();\r\n }\r\n };\r\n Chart.prototype.zoom.enable = function (enabled) {\r\n var $$ = this.internal;\r\n $$.config.zoom_enabled = enabled;\r\n $$.updateAndRedraw();\r\n };\r\n Chart.prototype.unzoom = function () {\r\n var $$ = this.internal;\r\n if ($$.config.subchart_show) {\r\n $$.brush.clear();\r\n }\r\n else {\r\n $$.updateXDomain(null, true, false, false, $$.subX.domain());\r\n $$.redraw({ withY: $$.config.zoom_rescale, withSubchart: false });\r\n }\r\n };\r\n Chart.prototype.zoom.max = function (max) {\r\n var $$ = this.internal, config = $$.config, d3 = $$.d3;\r\n if (max === 0 || max) {\r\n config.zoom_x_max = d3.max([$$.orgXDomain[1], max]);\r\n }\r\n else {\r\n return config.zoom_x_max;\r\n }\r\n };\r\n Chart.prototype.zoom.min = function (min) {\r\n var $$ = this.internal, config = $$.config, d3 = $$.d3;\r\n if (min === 0 || min) {\r\n config.zoom_x_min = d3.min([$$.orgXDomain[0], min]);\r\n }\r\n else {\r\n return config.zoom_x_min;\r\n }\r\n };\r\n Chart.prototype.zoom.range = function (range) {\r\n if (arguments.length) {\r\n if (isDefined(range.max)) {\r\n this.domain.max(range.max);\r\n }\r\n if (isDefined(range.min)) {\r\n this.domain.min(range.min);\r\n }\r\n }\r\n else {\r\n return {\r\n max: this.domain.max(),\r\n min: this.domain.min()\r\n };\r\n }\r\n };\n\n ChartInternal.prototype.initPie = function () {\r\n var $$ = this, d3 = $$.d3;\r\n $$.pie = d3\r\n .pie()\r\n .padAngle(this.getPadAngle.bind(this))\r\n .value(function (d) {\r\n return d.values.reduce(function (a, b) {\r\n return a + b.value;\r\n }, 0);\r\n });\r\n var orderFct = $$.getOrderFunction();\r\n // we need to reverse the returned order if asc or desc to have the slice in expected order.\r\n if (orderFct && ($$.isOrderAsc() || $$.isOrderDesc())) {\r\n var defaultSort_1 = orderFct;\r\n orderFct = function (t1, t2) { return defaultSort_1(t1, t2) * -1; };\r\n }\r\n $$.pie.sort(orderFct || null);\r\n };\r\n ChartInternal.prototype.updateRadius = function () {\r\n var $$ = this, config = $$.config, w = config.gauge_width || config.donut_width, gaugeArcWidth = $$.filterTargetsToShow($$.data.targets).length *\r\n $$.config.gauge_arcs_minWidth;\r\n $$.radiusExpanded =\r\n (Math.min($$.arcWidth, $$.arcHeight) / 2) * ($$.hasType('gauge') ? 0.85 : 1);\r\n $$.radius = $$.radiusExpanded * 0.95;\r\n $$.innerRadiusRatio = w ? ($$.radius - w) / $$.radius : 0.6;\r\n $$.innerRadius =\r\n $$.hasType('donut') || $$.hasType('gauge')\r\n ? $$.radius * $$.innerRadiusRatio\r\n : 0;\r\n $$.gaugeArcWidth = w\r\n ? w\r\n : gaugeArcWidth <= $$.radius - $$.innerRadius\r\n ? $$.radius - $$.innerRadius\r\n : gaugeArcWidth <= $$.radius\r\n ? gaugeArcWidth\r\n : $$.radius;\r\n };\r\n ChartInternal.prototype.getPadAngle = function () {\r\n if (this.hasType('pie')) {\r\n return this.config.pie_padAngle || 0;\r\n }\r\n else if (this.hasType('donut')) {\r\n return this.config.donut_padAngle || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n ChartInternal.prototype.updateArc = function () {\r\n var $$ = this;\r\n $$.svgArc = $$.getSvgArc();\r\n $$.svgArcExpanded = $$.getSvgArcExpanded();\r\n $$.svgArcExpandedSub = $$.getSvgArcExpanded(0.98);\r\n };\r\n ChartInternal.prototype.updateAngle = function (d) {\r\n var $$ = this, config = $$.config, found = false, index = 0, gMin, gMax, gTic, gValue;\r\n if (!config) {\r\n return null;\r\n }\r\n $$.pie($$.filterTargetsToShow($$.data.targets)).forEach(function (t) {\r\n if (!found && t.data.id === d.data.id) {\r\n found = true;\r\n d = t;\r\n d.index = index;\r\n }\r\n index++;\r\n });\r\n if (isNaN(d.startAngle)) {\r\n d.startAngle = 0;\r\n }\r\n if (isNaN(d.endAngle)) {\r\n d.endAngle = d.startAngle;\r\n }\r\n if ($$.isGaugeType(d.data)) {\r\n gMin = config.gauge_min;\r\n gMax = config.gauge_max;\r\n gTic = (Math.PI * (config.gauge_fullCircle ? 2 : 1)) / (gMax - gMin);\r\n gValue = d.value < gMin ? 0 : d.value < gMax ? d.value - gMin : gMax - gMin;\r\n d.startAngle = config.gauge_startingAngle;\r\n d.endAngle = d.startAngle + gTic * gValue;\r\n }\r\n return found ? d : null;\r\n };\r\n ChartInternal.prototype.getSvgArc = function () {\r\n var $$ = this, hasGaugeType = $$.hasType('gauge'), singleArcWidth = $$.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length, arc = $$.d3\r\n .arc()\r\n .outerRadius(function (d) {\r\n return hasGaugeType ? $$.radius - singleArcWidth * d.index : $$.radius;\r\n })\r\n .innerRadius(function (d) {\r\n return hasGaugeType\r\n ? $$.radius - singleArcWidth * (d.index + 1)\r\n : $$.innerRadius;\r\n }), newArc = function (d, withoutUpdate) {\r\n var updated;\r\n if (withoutUpdate) {\r\n return arc(d);\r\n } // for interpolate\r\n updated = $$.updateAngle(d);\r\n return updated ? arc(updated) : 'M 0 0';\r\n };\r\n newArc.centroid = arc.centroid;\r\n return newArc;\r\n };\r\n ChartInternal.prototype.getSvgArcExpanded = function (rate) {\r\n rate = rate || 1;\r\n var $$ = this, hasGaugeType = $$.hasType('gauge'), singleArcWidth = $$.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length, expandWidth = Math.min($$.radiusExpanded * rate - $$.radius, singleArcWidth * 0.8 - (1 - rate) * 100), arc = $$.d3\r\n .arc()\r\n .outerRadius(function (d) {\r\n return hasGaugeType\r\n ? $$.radius - singleArcWidth * d.index + expandWidth\r\n : $$.radiusExpanded * rate;\r\n })\r\n .innerRadius(function (d) {\r\n return hasGaugeType\r\n ? $$.radius - singleArcWidth * (d.index + 1)\r\n : $$.innerRadius;\r\n });\r\n return function (d) {\r\n var updated = $$.updateAngle(d);\r\n return updated ? arc(updated) : 'M 0 0';\r\n };\r\n };\r\n ChartInternal.prototype.getArc = function (d, withoutUpdate, force) {\r\n return force || this.isArcType(d.data)\r\n ? this.svgArc(d, withoutUpdate)\r\n : 'M 0 0';\r\n };\r\n ChartInternal.prototype.transformForArcLabel = function (d) {\r\n var $$ = this, config = $$.config, updated = $$.updateAngle(d), c, x, y, h, ratio, translate = '', hasGauge = $$.hasType('gauge');\r\n if (updated && !hasGauge) {\r\n c = this.svgArc.centroid(updated);\r\n x = isNaN(c[0]) ? 0 : c[0];\r\n y = isNaN(c[1]) ? 0 : c[1];\r\n h = Math.sqrt(x * x + y * y);\r\n if ($$.hasType('donut') && config.donut_label_ratio) {\r\n ratio = isFunction(config.donut_label_ratio)\r\n ? config.donut_label_ratio(d, $$.radius, h)\r\n : config.donut_label_ratio;\r\n }\r\n else if ($$.hasType('pie') && config.pie_label_ratio) {\r\n ratio = isFunction(config.pie_label_ratio)\r\n ? config.pie_label_ratio(d, $$.radius, h)\r\n : config.pie_label_ratio;\r\n }\r\n else {\r\n ratio =\r\n $$.radius && h\r\n ? ((36 / $$.radius > 0.375 ? 1.175 - 36 / $$.radius : 0.8) *\r\n $$.radius) /\r\n h\r\n : 0;\r\n }\r\n translate = 'translate(' + x * ratio + ',' + y * ratio + ')';\r\n }\r\n else if (updated &&\r\n hasGauge &&\r\n $$.filterTargetsToShow($$.data.targets).length > 1) {\r\n var y1 = Math.sin(updated.endAngle - Math.PI / 2);\r\n x = Math.cos(updated.endAngle - Math.PI / 2) * ($$.radiusExpanded + 25);\r\n y = y1 * ($$.radiusExpanded + 15 - Math.abs(y1 * 10)) + 3;\r\n translate = 'translate(' + x + ',' + y + ')';\r\n }\r\n return translate;\r\n };\r\n /**\r\n * @deprecated Use `getRatio('arc', d)` instead.\r\n */\r\n ChartInternal.prototype.getArcRatio = function (d) {\r\n return this.getRatio('arc', d);\r\n };\r\n ChartInternal.prototype.convertToArcData = function (d) {\r\n return this.addName({\r\n id: d.data.id,\r\n value: d.value,\r\n ratio: this.getRatio('arc', d),\r\n index: d.index\r\n });\r\n };\r\n ChartInternal.prototype.textForArcLabel = function (d) {\r\n var $$ = this, updated, value, ratio, id, format;\r\n if (!$$.shouldShowArcLabel()) {\r\n return '';\r\n }\r\n updated = $$.updateAngle(d);\r\n value = updated ? updated.value : null;\r\n ratio = $$.getRatio('arc', updated);\r\n id = d.data.id;\r\n if (!$$.hasType('gauge') && !$$.meetsArcLabelThreshold(ratio)) {\r\n return '';\r\n }\r\n format = $$.getArcLabelFormat();\r\n return format\r\n ? format(value, ratio, id)\r\n : $$.defaultArcValueFormat(value, ratio);\r\n };\r\n ChartInternal.prototype.textForGaugeMinMax = function (value, isMax) {\r\n var $$ = this, format = $$.getGaugeLabelExtents();\r\n return format ? format(value, isMax) : value;\r\n };\r\n ChartInternal.prototype.expandArc = function (targetIds) {\r\n var $$ = this, interval;\r\n // MEMO: avoid to cancel transition\r\n if ($$.transiting) {\r\n interval = window.setInterval(function () {\r\n if (!$$.transiting) {\r\n window.clearInterval(interval);\r\n if ($$.legend.selectAll('.c3-legend-item-focused').size() > 0) {\r\n $$.expandArc(targetIds);\r\n }\r\n }\r\n }, 10);\r\n return;\r\n }\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n $$.svg\r\n .selectAll($$.selectorTargets(targetIds, '.' + CLASS.chartArc))\r\n .each(function (d) {\r\n if (!$$.shouldExpand(d.data.id)) {\r\n return;\r\n }\r\n $$.d3\r\n .select(this)\r\n .selectAll('path')\r\n .transition()\r\n .duration($$.expandDuration(d.data.id))\r\n .attr('d', $$.svgArcExpanded)\r\n .transition()\r\n .duration($$.expandDuration(d.data.id) * 2)\r\n .attr('d', $$.svgArcExpandedSub)\r\n .each(function (d) {\r\n if ($$.isDonutType(d.data)) ;\r\n });\r\n });\r\n };\r\n ChartInternal.prototype.unexpandArc = function (targetIds) {\r\n var $$ = this;\r\n if ($$.transiting) {\r\n return;\r\n }\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n $$.svg\r\n .selectAll($$.selectorTargets(targetIds, '.' + CLASS.chartArc))\r\n .selectAll('path')\r\n .transition()\r\n .duration(function (d) {\r\n return $$.expandDuration(d.data.id);\r\n })\r\n .attr('d', $$.svgArc);\r\n $$.svg.selectAll('.' + CLASS.arc);\r\n };\r\n ChartInternal.prototype.expandDuration = function (id) {\r\n var $$ = this, config = $$.config;\r\n if ($$.isDonutType(id)) {\r\n return config.donut_expand_duration;\r\n }\r\n else if ($$.isGaugeType(id)) {\r\n return config.gauge_expand_duration;\r\n }\r\n else if ($$.isPieType(id)) {\r\n return config.pie_expand_duration;\r\n }\r\n else {\r\n return 50;\r\n }\r\n };\r\n ChartInternal.prototype.shouldExpand = function (id) {\r\n var $$ = this, config = $$.config;\r\n return (($$.isDonutType(id) && config.donut_expand) ||\r\n ($$.isGaugeType(id) && config.gauge_expand) ||\r\n ($$.isPieType(id) && config.pie_expand));\r\n };\r\n ChartInternal.prototype.shouldShowArcLabel = function () {\r\n var $$ = this, config = $$.config, shouldShow = true;\r\n if ($$.hasType('donut')) {\r\n shouldShow = config.donut_label_show;\r\n }\r\n else if ($$.hasType('pie')) {\r\n shouldShow = config.pie_label_show;\r\n }\r\n // when gauge, always true\r\n return shouldShow;\r\n };\r\n ChartInternal.prototype.meetsArcLabelThreshold = function (ratio) {\r\n var $$ = this, config = $$.config, threshold = $$.hasType('donut')\r\n ? config.donut_label_threshold\r\n : config.pie_label_threshold;\r\n return ratio >= threshold;\r\n };\r\n ChartInternal.prototype.getArcLabelFormat = function () {\r\n var $$ = this, config = $$.config, format = config.pie_label_format;\r\n if ($$.hasType('gauge')) {\r\n format = config.gauge_label_format;\r\n }\r\n else if ($$.hasType('donut')) {\r\n format = config.donut_label_format;\r\n }\r\n return format;\r\n };\r\n ChartInternal.prototype.getGaugeLabelExtents = function () {\r\n var $$ = this, config = $$.config;\r\n return config.gauge_label_extents;\r\n };\r\n ChartInternal.prototype.getArcTitle = function () {\r\n var $$ = this;\r\n return $$.hasType('donut') ? $$.config.donut_title : '';\r\n };\r\n ChartInternal.prototype.updateTargetsForArc = function (targets) {\r\n var $$ = this, main = $$.main, mainPies, mainPieEnter, classChartArc = $$.classChartArc.bind($$), classArcs = $$.classArcs.bind($$), classFocus = $$.classFocus.bind($$);\r\n mainPies = main\r\n .select('.' + CLASS.chartArcs)\r\n .selectAll('.' + CLASS.chartArc)\r\n .data($$.pie(targets))\r\n .attr('class', function (d) {\r\n return classChartArc(d) + classFocus(d.data);\r\n });\r\n mainPieEnter = mainPies\r\n .enter()\r\n .append('g')\r\n .attr('class', classChartArc);\r\n mainPieEnter.append('g').attr('class', classArcs);\r\n mainPieEnter\r\n .append('text')\r\n .attr('dy', $$.hasType('gauge') ? '-.1em' : '.35em')\r\n .style('opacity', 0)\r\n .style('text-anchor', 'middle')\r\n .style('pointer-events', 'none');\r\n // MEMO: can not keep same color..., but not bad to update color in redraw\r\n //mainPieUpdate.exit().remove();\r\n };\r\n ChartInternal.prototype.initArc = function () {\r\n var $$ = this;\r\n $$.arcs = $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartArcs)\r\n .attr('transform', $$.getTranslate('arc'));\r\n $$.arcs\r\n .append('text')\r\n .attr('class', CLASS.chartArcsTitle)\r\n .style('text-anchor', 'middle')\r\n .text($$.getArcTitle());\r\n };\r\n ChartInternal.prototype.redrawArc = function (duration, durationForExit, withTransform) {\r\n var $$ = this, d3 = $$.d3, config = $$.config, main = $$.main, arcs, mainArc, arcLabelLines, mainArcLabelLine, hasGaugeType = $$.hasType('gauge');\r\n arcs = main\r\n .selectAll('.' + CLASS.arcs)\r\n .selectAll('.' + CLASS.arc)\r\n .data($$.arcData.bind($$));\r\n mainArc = arcs\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classArc.bind($$))\r\n .style('fill', function (d) {\r\n return $$.color(d.data);\r\n })\r\n .style('cursor', function (d) {\r\n return config.interaction_enabled && config.data_selection_isselectable(d)\r\n ? 'pointer'\r\n : null;\r\n })\r\n .each(function (d) {\r\n if ($$.isGaugeType(d.data)) {\r\n d.startAngle = d.endAngle = config.gauge_startingAngle;\r\n }\r\n this._current = d;\r\n })\r\n .merge(arcs);\r\n if (hasGaugeType) {\r\n arcLabelLines = main\r\n .selectAll('.' + CLASS.arcs)\r\n .selectAll('.' + CLASS.arcLabelLine)\r\n .data($$.arcData.bind($$));\r\n mainArcLabelLine = arcLabelLines\r\n .enter()\r\n .append('rect')\r\n .attr('class', function (d) {\r\n return (CLASS.arcLabelLine +\r\n ' ' +\r\n CLASS.target +\r\n ' ' +\r\n CLASS.target +\r\n '-' +\r\n d.data.id);\r\n })\r\n .merge(arcLabelLines);\r\n if ($$.filterTargetsToShow($$.data.targets).length === 1) {\r\n mainArcLabelLine.style('display', 'none');\r\n }\r\n else {\r\n mainArcLabelLine\r\n .style('fill', function (d) {\r\n return $$.levelColor\r\n ? $$.levelColor(d.data.values.reduce(function (total, item) {\r\n return total + item.value;\r\n }, 0))\r\n : $$.color(d.data);\r\n })\r\n .style('display', config.gauge_labelLine_show ? '' : 'none')\r\n .each(function (d) {\r\n var lineLength = 0, lineThickness = 2, x = 0, y = 0, transform = '';\r\n if ($$.hiddenTargetIds.indexOf(d.data.id) < 0) {\r\n var updated = $$.updateAngle(d), innerLineLength = ($$.gaugeArcWidth /\r\n $$.filterTargetsToShow($$.data.targets).length) *\r\n (updated.index + 1), lineAngle = updated.endAngle - Math.PI / 2, arcInnerRadius = $$.radius - innerLineLength, linePositioningAngle = lineAngle - (arcInnerRadius === 0 ? 0 : 1 / arcInnerRadius);\r\n lineLength = $$.radiusExpanded - $$.radius + innerLineLength;\r\n x = Math.cos(linePositioningAngle) * arcInnerRadius;\r\n y = Math.sin(linePositioningAngle) * arcInnerRadius;\r\n transform =\r\n 'rotate(' +\r\n (lineAngle * 180) / Math.PI +\r\n ', ' +\r\n x +\r\n ', ' +\r\n y +\r\n ')';\r\n }\r\n d3.select(this)\r\n .attr('x', x)\r\n .attr('y', y)\r\n .attr('width', lineLength)\r\n .attr('height', lineThickness)\r\n .attr('transform', transform)\r\n .style('stroke-dasharray', '0, ' + (lineLength + lineThickness) + ', 0');\r\n });\r\n }\r\n }\r\n mainArc\r\n .attr('transform', function (d) {\r\n return !$$.isGaugeType(d.data) && withTransform ? 'scale(0)' : '';\r\n })\r\n .on('mouseover', config.interaction_enabled\r\n ? function (d) {\r\n var updated, arcData;\r\n if ($$.transiting) {\r\n // skip while transiting\r\n return;\r\n }\r\n updated = $$.updateAngle(d);\r\n if (updated) {\r\n arcData = $$.convertToArcData(updated);\r\n // transitions\r\n $$.expandArc(updated.data.id);\r\n $$.api.focus(updated.data.id);\r\n $$.toggleFocusLegend(updated.data.id, true);\r\n $$.config.data_onmouseover(arcData, this);\r\n }\r\n }\r\n : null)\r\n .on('mousemove', config.interaction_enabled\r\n ? function (d) {\r\n var updated = $$.updateAngle(d), arcData, selectedData;\r\n if (updated) {\r\n (arcData = $$.convertToArcData(updated)),\r\n (selectedData = [arcData]);\r\n $$.showTooltip(selectedData, this);\r\n }\r\n }\r\n : null)\r\n .on('mouseout', config.interaction_enabled\r\n ? function (d) {\r\n var updated, arcData;\r\n if ($$.transiting) {\r\n // skip while transiting\r\n return;\r\n }\r\n updated = $$.updateAngle(d);\r\n if (updated) {\r\n arcData = $$.convertToArcData(updated);\r\n // transitions\r\n $$.unexpandArc(updated.data.id);\r\n $$.api.revert();\r\n $$.revertLegend();\r\n $$.hideTooltip();\r\n $$.config.data_onmouseout(arcData, this);\r\n }\r\n }\r\n : null)\r\n .on('click', config.interaction_enabled\r\n ? function (d, i) {\r\n var updated = $$.updateAngle(d), arcData;\r\n if (updated) {\r\n arcData = $$.convertToArcData(updated);\r\n if ($$.toggleShape) {\r\n $$.toggleShape(this, arcData, i);\r\n }\r\n $$.config.data_onclick.call($$.api, arcData, this);\r\n }\r\n }\r\n : null)\r\n .each(function () {\r\n $$.transiting = true;\r\n })\r\n .transition()\r\n .duration(duration)\r\n .attrTween('d', function (d) {\r\n var updated = $$.updateAngle(d), interpolate;\r\n if (!updated) {\r\n return function () {\r\n return 'M 0 0';\r\n };\r\n }\r\n // if (this._current === d) {\r\n // this._current = {\r\n // startAngle: Math.PI*2,\r\n // endAngle: Math.PI*2,\r\n // };\r\n // }\r\n if (isNaN(this._current.startAngle)) {\r\n this._current.startAngle = 0;\r\n }\r\n if (isNaN(this._current.endAngle)) {\r\n this._current.endAngle = this._current.startAngle;\r\n }\r\n interpolate = d3.interpolate(this._current, updated);\r\n this._current = interpolate(0);\r\n return function (t) {\r\n // prevents crashing the charts once in transition and chart.destroy() has been called\r\n if ($$.config === null) {\r\n return 'M 0 0';\r\n }\r\n var interpolated = interpolate(t);\r\n interpolated.data = d.data; // data.id will be updated by interporator\r\n return $$.getArc(interpolated, true);\r\n };\r\n })\r\n .attr('transform', withTransform ? 'scale(1)' : '')\r\n .style('fill', function (d) {\r\n return $$.levelColor\r\n ? $$.levelColor(d.data.values.reduce(function (total, item) {\r\n return total + item.value;\r\n }, 0))\r\n : $$.color(d.data.id);\r\n }) // Where gauge reading color would receive customization.\r\n .call($$.endall, function () {\r\n $$.transiting = false;\r\n });\r\n arcs\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0)\r\n .remove();\r\n main\r\n .selectAll('.' + CLASS.chartArc)\r\n .select('text')\r\n .style('opacity', 0)\r\n .attr('class', function (d) {\r\n return $$.isGaugeType(d.data) ? CLASS.gaugeValue : '';\r\n })\r\n .text($$.textForArcLabel.bind($$))\r\n .attr('transform', $$.transformForArcLabel.bind($$))\r\n .style('font-size', function (d) {\r\n return $$.isGaugeType(d.data) &&\r\n $$.filterTargetsToShow($$.data.targets).length === 1\r\n ? Math.round($$.radius / 5) + 'px'\r\n : '';\r\n })\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', function (d) {\r\n return $$.isTargetToShow(d.data.id) && $$.isArcType(d.data) ? 1 : 0;\r\n });\r\n main\r\n .select('.' + CLASS.chartArcsTitle)\r\n .style('opacity', $$.hasType('donut') || hasGaugeType ? 1 : 0);\r\n if (hasGaugeType) {\r\n var index_1 = 0;\r\n var backgroundArc = $$.arcs\r\n .select('g.' + CLASS.chartArcsBackground)\r\n .selectAll('path.' + CLASS.chartArcsBackground)\r\n .data($$.data.targets);\r\n backgroundArc\r\n .enter()\r\n .append('path')\r\n .attr('class', function (d, i) {\r\n return CLASS.chartArcsBackground + ' ' + CLASS.chartArcsBackground + '-' + i;\r\n })\r\n .merge(backgroundArc)\r\n .attr('d', function (d1) {\r\n if ($$.hiddenTargetIds.indexOf(d1.id) >= 0) {\r\n return 'M 0 0';\r\n }\r\n var d = {\r\n data: [{ value: config.gauge_max }],\r\n startAngle: config.gauge_startingAngle,\r\n endAngle: -1 *\r\n config.gauge_startingAngle *\r\n (config.gauge_fullCircle ? Math.PI : 1),\r\n index: index_1++\r\n };\r\n return $$.getArc(d, true, true);\r\n });\r\n backgroundArc.exit().remove();\r\n $$.arcs\r\n .select('.' + CLASS.chartArcsGaugeUnit)\r\n .attr('dy', '.75em')\r\n .text(config.gauge_label_show ? config.gauge_units : '');\r\n $$.arcs\r\n .select('.' + CLASS.chartArcsGaugeMin)\r\n .attr('dx', -1 *\r\n ($$.innerRadius +\r\n ($$.radius - $$.innerRadius) / (config.gauge_fullCircle ? 1 : 2)) +\r\n 'px')\r\n .attr('dy', '1.2em')\r\n .text(config.gauge_label_show\r\n ? $$.textForGaugeMinMax(config.gauge_min, false)\r\n : '');\r\n $$.arcs\r\n .select('.' + CLASS.chartArcsGaugeMax)\r\n .attr('dx', $$.innerRadius +\r\n ($$.radius - $$.innerRadius) / (config.gauge_fullCircle ? 1 : 2) +\r\n 'px')\r\n .attr('dy', '1.2em')\r\n .text(config.gauge_label_show\r\n ? $$.textForGaugeMinMax(config.gauge_max, true)\r\n : '');\r\n }\r\n };\r\n ChartInternal.prototype.initGauge = function () {\r\n var arcs = this.arcs;\r\n if (this.hasType('gauge')) {\r\n arcs.append('g').attr('class', CLASS.chartArcsBackground);\r\n arcs\r\n .append('text')\r\n .attr('class', CLASS.chartArcsGaugeUnit)\r\n .style('text-anchor', 'middle')\r\n .style('pointer-events', 'none');\r\n arcs\r\n .append('text')\r\n .attr('class', CLASS.chartArcsGaugeMin)\r\n .style('text-anchor', 'middle')\r\n .style('pointer-events', 'none');\r\n arcs\r\n .append('text')\r\n .attr('class', CLASS.chartArcsGaugeMax)\r\n .style('text-anchor', 'middle')\r\n .style('pointer-events', 'none');\r\n }\r\n };\r\n ChartInternal.prototype.getGaugeLabelHeight = function () {\r\n return this.config.gauge_label_show ? 20 : 0;\r\n };\n\n /**\r\n * Store value into cache\r\n *\r\n * @param key\r\n * @param value\r\n */\r\n ChartInternal.prototype.addToCache = function (key, value) {\r\n this.cache[\"$\" + key] = value;\r\n };\r\n /**\r\n * Returns a cached value or undefined\r\n *\r\n * @param key\r\n * @return {*}\r\n */\r\n ChartInternal.prototype.getFromCache = function (key) {\r\n return this.cache[\"$\" + key];\r\n };\r\n /**\r\n * Reset cached data\r\n */\r\n ChartInternal.prototype.resetCache = function () {\r\n var _this = this;\r\n Object.keys(this.cache)\r\n .filter(function (key) { return /^\\$/.test(key); })\r\n .forEach(function (key) {\r\n delete _this.cache[key];\r\n });\r\n };\r\n // Old API that stores Targets\r\n ChartInternal.prototype.hasCaches = function (ids) {\r\n for (var i = 0; i < ids.length; i++) {\r\n if (!(ids[i] in this.cache)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n ChartInternal.prototype.addCache = function (id, target) {\r\n this.cache[id] = this.cloneTarget(target);\r\n };\r\n ChartInternal.prototype.getCaches = function (ids) {\r\n var targets = [], i;\r\n for (i = 0; i < ids.length; i++) {\r\n if (ids[i] in this.cache) {\r\n targets.push(this.cloneTarget(this.cache[ids[i]]));\r\n }\r\n }\r\n return targets;\r\n };\n\n ChartInternal.prototype.categoryName = function (i) {\r\n var config = this.config;\r\n return i < config.axis_x_categories.length ? config.axis_x_categories[i] : i;\r\n };\n\n ChartInternal.prototype.generateTargetClass = function (targetId) {\r\n return targetId || targetId === 0 ? ('-' + targetId).replace(/\\s/g, '-') : '';\r\n };\r\n ChartInternal.prototype.generateClass = function (prefix, targetId) {\r\n return ' ' + prefix + ' ' + prefix + this.generateTargetClass(targetId);\r\n };\r\n ChartInternal.prototype.classText = function (d) {\r\n return this.generateClass(CLASS.text, d.index);\r\n };\r\n ChartInternal.prototype.classTexts = function (d) {\r\n return this.generateClass(CLASS.texts, d.id);\r\n };\r\n ChartInternal.prototype.classShape = function (d) {\r\n return this.generateClass(CLASS.shape, d.index);\r\n };\r\n ChartInternal.prototype.classShapes = function (d) {\r\n return this.generateClass(CLASS.shapes, d.id);\r\n };\r\n ChartInternal.prototype.classLine = function (d) {\r\n return this.classShape(d) + this.generateClass(CLASS.line, d.id);\r\n };\r\n ChartInternal.prototype.classLines = function (d) {\r\n return this.classShapes(d) + this.generateClass(CLASS.lines, d.id);\r\n };\r\n ChartInternal.prototype.classCircle = function (d) {\r\n return this.classShape(d) + this.generateClass(CLASS.circle, d.index);\r\n };\r\n ChartInternal.prototype.classCircles = function (d) {\r\n return this.classShapes(d) + this.generateClass(CLASS.circles, d.id);\r\n };\r\n ChartInternal.prototype.classBar = function (d) {\r\n return this.classShape(d) + this.generateClass(CLASS.bar, d.index);\r\n };\r\n ChartInternal.prototype.classBars = function (d) {\r\n return this.classShapes(d) + this.generateClass(CLASS.bars, d.id);\r\n };\r\n ChartInternal.prototype.classArc = function (d) {\r\n return this.classShape(d.data) + this.generateClass(CLASS.arc, d.data.id);\r\n };\r\n ChartInternal.prototype.classArcs = function (d) {\r\n return this.classShapes(d.data) + this.generateClass(CLASS.arcs, d.data.id);\r\n };\r\n ChartInternal.prototype.classArea = function (d) {\r\n return this.classShape(d) + this.generateClass(CLASS.area, d.id);\r\n };\r\n ChartInternal.prototype.classAreas = function (d) {\r\n return this.classShapes(d) + this.generateClass(CLASS.areas, d.id);\r\n };\r\n ChartInternal.prototype.classRegion = function (d, i) {\r\n return (this.generateClass(CLASS.region, i) + ' ' + ('class' in d ? d['class'] : ''));\r\n };\r\n ChartInternal.prototype.classEvent = function (d) {\r\n return this.generateClass(CLASS.eventRect, d.index);\r\n };\r\n ChartInternal.prototype.classTarget = function (id) {\r\n var $$ = this;\r\n var additionalClassSuffix = $$.config.data_classes[id], additionalClass = '';\r\n if (additionalClassSuffix) {\r\n additionalClass = ' ' + CLASS.target + '-' + additionalClassSuffix;\r\n }\r\n return $$.generateClass(CLASS.target, id) + additionalClass;\r\n };\r\n ChartInternal.prototype.classFocus = function (d) {\r\n return this.classFocused(d) + this.classDefocused(d);\r\n };\r\n ChartInternal.prototype.classFocused = function (d) {\r\n return ' ' + (this.focusedTargetIds.indexOf(d.id) >= 0 ? CLASS.focused : '');\r\n };\r\n ChartInternal.prototype.classDefocused = function (d) {\r\n return (' ' + (this.defocusedTargetIds.indexOf(d.id) >= 0 ? CLASS.defocused : ''));\r\n };\r\n ChartInternal.prototype.classChartText = function (d) {\r\n return CLASS.chartText + this.classTarget(d.id);\r\n };\r\n ChartInternal.prototype.classChartLine = function (d) {\r\n return CLASS.chartLine + this.classTarget(d.id);\r\n };\r\n ChartInternal.prototype.classChartBar = function (d) {\r\n return CLASS.chartBar + this.classTarget(d.id);\r\n };\r\n ChartInternal.prototype.classChartArc = function (d) {\r\n return CLASS.chartArc + this.classTarget(d.data.id);\r\n };\r\n ChartInternal.prototype.getTargetSelectorSuffix = function (targetId) {\r\n var targetClass = this.generateTargetClass(targetId);\r\n if (window.CSS && window.CSS.escape) {\r\n return window.CSS.escape(targetClass);\r\n }\r\n // fallback on imperfect method for old browsers (does not handles unicode)\r\n return targetClass.replace(/([?!@#$%^&*()=+,.<>'\":;\\[\\]\\/|~`{}\\\\])/g, '\\\\$1');\r\n };\r\n ChartInternal.prototype.selectorTarget = function (id, prefix) {\r\n return (prefix || '') + '.' + CLASS.target + this.getTargetSelectorSuffix(id);\r\n };\r\n ChartInternal.prototype.selectorTargets = function (ids, prefix) {\r\n var $$ = this;\r\n ids = ids || [];\r\n return ids.length\r\n ? ids.map(function (id) {\r\n return $$.selectorTarget(id, prefix);\r\n })\r\n : null;\r\n };\r\n ChartInternal.prototype.selectorLegend = function (id) {\r\n return '.' + CLASS.legendItem + this.getTargetSelectorSuffix(id);\r\n };\r\n ChartInternal.prototype.selectorLegends = function (ids) {\r\n var $$ = this;\r\n return ids && ids.length\r\n ? ids.map(function (id) {\r\n return $$.selectorLegend(id);\r\n })\r\n : null;\r\n };\n\n ChartInternal.prototype.getClipPath = function (id) {\r\n return 'url(' + (isIE(9) ? '' : document.URL.split('#')[0]) + '#' + id + ')';\r\n };\r\n ChartInternal.prototype.appendClip = function (parent, id) {\r\n return parent\r\n .append('clipPath')\r\n .attr('id', id)\r\n .append('rect');\r\n };\r\n ChartInternal.prototype.getAxisClipX = function (forHorizontal) {\r\n // axis line width + padding for left\r\n var left = Math.max(30, this.margin.left);\r\n return forHorizontal ? -(1 + left) : -(left - 1);\r\n };\r\n ChartInternal.prototype.getAxisClipY = function (forHorizontal) {\r\n return forHorizontal ? -20 : -this.margin.top;\r\n };\r\n ChartInternal.prototype.getXAxisClipX = function () {\r\n var $$ = this;\r\n return $$.getAxisClipX(!$$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getXAxisClipY = function () {\r\n var $$ = this;\r\n return $$.getAxisClipY(!$$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getYAxisClipX = function () {\r\n var $$ = this;\r\n return $$.config.axis_y_inner ? -1 : $$.getAxisClipX($$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getYAxisClipY = function () {\r\n var $$ = this;\r\n return $$.getAxisClipY($$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getAxisClipWidth = function (forHorizontal) {\r\n var $$ = this, left = Math.max(30, $$.margin.left), right = Math.max(30, $$.margin.right);\r\n // width + axis line width + padding for left/right\r\n return forHorizontal ? $$.width + 2 + left + right : $$.margin.left + 20;\r\n };\r\n ChartInternal.prototype.getAxisClipHeight = function (forHorizontal) {\r\n // less than 20 is not enough to show the axis label 'outer' without legend\r\n return ((forHorizontal ? this.margin.bottom : this.margin.top + this.height) + 20);\r\n };\r\n ChartInternal.prototype.getXAxisClipWidth = function () {\r\n var $$ = this;\r\n return $$.getAxisClipWidth(!$$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getXAxisClipHeight = function () {\r\n var $$ = this;\r\n return $$.getAxisClipHeight(!$$.config.axis_rotated);\r\n };\r\n ChartInternal.prototype.getYAxisClipWidth = function () {\r\n var $$ = this;\r\n return ($$.getAxisClipWidth($$.config.axis_rotated) +\r\n ($$.config.axis_y_inner ? 20 : 0));\r\n };\r\n ChartInternal.prototype.getYAxisClipHeight = function () {\r\n var $$ = this;\r\n return $$.getAxisClipHeight($$.config.axis_rotated);\r\n };\n\n ChartInternal.prototype.generateColor = function () {\r\n var $$ = this, config = $$.config, d3 = $$.d3, colors = config.data_colors, pattern = notEmpty(config.color_pattern)\r\n ? config.color_pattern\r\n : d3.schemeCategory10, callback = config.data_color, ids = [];\r\n return function (d) {\r\n var id = d.id || (d.data && d.data.id) || d, color;\r\n // if callback function is provided\r\n if (colors[id] instanceof Function) {\r\n color = colors[id](d);\r\n }\r\n // if specified, choose that color\r\n else if (colors[id]) {\r\n color = colors[id];\r\n }\r\n // if not specified, choose from pattern\r\n else {\r\n if (ids.indexOf(id) < 0) {\r\n ids.push(id);\r\n }\r\n color = pattern[ids.indexOf(id) % pattern.length];\r\n colors[id] = color;\r\n }\r\n return callback instanceof Function ? callback(color, d) : color;\r\n };\r\n };\r\n ChartInternal.prototype.generateLevelColor = function () {\r\n var $$ = this, config = $$.config, colors = config.color_pattern, threshold = config.color_threshold, asValue = threshold.unit === 'value', values = threshold.values && threshold.values.length ? threshold.values : [], max = threshold.max || 100;\r\n return notEmpty(threshold) && notEmpty(colors)\r\n ? function (value) {\r\n var i, v, color = colors[colors.length - 1];\r\n for (i = 0; i < values.length; i++) {\r\n v = asValue ? value : (value * 100) / max;\r\n if (v < values[i]) {\r\n color = colors[i];\r\n break;\r\n }\r\n }\r\n return color;\r\n }\r\n : null;\r\n };\n\n ChartInternal.prototype.getDefaultConfig = function () {\r\n var config = {\r\n bindto: '#chart',\r\n svg_classname: undefined,\r\n size_width: undefined,\r\n size_height: undefined,\r\n padding_left: undefined,\r\n padding_right: undefined,\r\n padding_top: undefined,\r\n padding_bottom: undefined,\r\n resize_auto: true,\r\n zoom_enabled: false,\r\n zoom_initialRange: undefined,\r\n zoom_type: 'scroll',\r\n zoom_disableDefaultBehavior: false,\r\n zoom_privileged: false,\r\n zoom_rescale: false,\r\n zoom_onzoom: function () { },\r\n zoom_onzoomstart: function () { },\r\n zoom_onzoomend: function () { },\r\n zoom_x_min: undefined,\r\n zoom_x_max: undefined,\r\n interaction_brighten: true,\r\n interaction_enabled: true,\r\n onmouseover: function () { },\r\n onmouseout: function () { },\r\n onresize: function () { },\r\n onresized: function () { },\r\n oninit: function () { },\r\n onrendered: function () { },\r\n transition_duration: 350,\r\n data_epochs: 'epochs',\r\n data_x: undefined,\r\n data_xs: {},\r\n data_xFormat: '%Y-%m-%d',\r\n data_xLocaltime: true,\r\n data_xSort: true,\r\n data_idConverter: function (id) {\r\n return id;\r\n },\r\n data_names: {},\r\n data_classes: {},\r\n data_groups: [],\r\n data_axes: {},\r\n data_type: undefined,\r\n data_types: {},\r\n data_labels: {},\r\n data_order: 'desc',\r\n data_regions: {},\r\n data_color: undefined,\r\n data_colors: {},\r\n data_hide: false,\r\n data_filter: undefined,\r\n data_selection_enabled: false,\r\n data_selection_grouped: false,\r\n data_selection_isselectable: function () {\r\n return true;\r\n },\r\n data_selection_multiple: true,\r\n data_selection_draggable: false,\r\n data_stack_normalize: false,\r\n data_onclick: function () { },\r\n data_onmouseover: function () { },\r\n data_onmouseout: function () { },\r\n data_onselected: function () { },\r\n data_onunselected: function () { },\r\n data_url: undefined,\r\n data_headers: undefined,\r\n data_json: undefined,\r\n data_rows: undefined,\r\n data_columns: undefined,\r\n data_mimeType: undefined,\r\n data_keys: undefined,\r\n // configuration for no plot-able data supplied.\r\n data_empty_label_text: '',\r\n // subchart\r\n subchart_show: false,\r\n subchart_size_height: 60,\r\n subchart_axis_x_show: true,\r\n subchart_onbrush: function () { },\r\n // color\r\n color_pattern: [],\r\n color_threshold: {},\r\n // legend\r\n legend_show: true,\r\n legend_hide: false,\r\n legend_position: 'bottom',\r\n legend_inset_anchor: 'top-left',\r\n legend_inset_x: 10,\r\n legend_inset_y: 0,\r\n legend_inset_step: undefined,\r\n legend_item_onclick: undefined,\r\n legend_item_onmouseover: undefined,\r\n legend_item_onmouseout: undefined,\r\n legend_equally: false,\r\n legend_padding: 0,\r\n legend_item_tile_width: 10,\r\n legend_item_tile_height: 10,\r\n // axis\r\n axis_rotated: false,\r\n axis_x_show: true,\r\n axis_x_type: 'indexed',\r\n axis_x_localtime: true,\r\n axis_x_categories: [],\r\n axis_x_tick_centered: false,\r\n axis_x_tick_format: undefined,\r\n axis_x_tick_culling: {},\r\n axis_x_tick_culling_max: 10,\r\n axis_x_tick_count: undefined,\r\n axis_x_tick_fit: true,\r\n axis_x_tick_values: null,\r\n axis_x_tick_rotate: 0,\r\n axis_x_tick_outer: true,\r\n axis_x_tick_multiline: true,\r\n axis_x_tick_multilineMax: 0,\r\n axis_x_tick_width: null,\r\n axis_x_max: undefined,\r\n axis_x_min: undefined,\r\n axis_x_padding: {},\r\n axis_x_height: undefined,\r\n axis_x_selection: undefined,\r\n axis_x_label: {},\r\n axis_x_inner: undefined,\r\n axis_y_show: true,\r\n axis_y_type: 'linear',\r\n axis_y_max: undefined,\r\n axis_y_min: undefined,\r\n axis_y_inverted: false,\r\n axis_y_center: undefined,\r\n axis_y_inner: undefined,\r\n axis_y_label: {},\r\n axis_y_tick_format: undefined,\r\n axis_y_tick_outer: true,\r\n axis_y_tick_values: null,\r\n axis_y_tick_rotate: 0,\r\n axis_y_tick_count: undefined,\r\n axis_y_tick_time_type: undefined,\r\n axis_y_tick_time_interval: undefined,\r\n axis_y_padding: {},\r\n axis_y_default: undefined,\r\n axis_y2_show: false,\r\n axis_y2_type: 'linear',\r\n axis_y2_max: undefined,\r\n axis_y2_min: undefined,\r\n axis_y2_inverted: false,\r\n axis_y2_center: undefined,\r\n axis_y2_inner: undefined,\r\n axis_y2_label: {},\r\n axis_y2_tick_format: undefined,\r\n axis_y2_tick_outer: true,\r\n axis_y2_tick_values: null,\r\n axis_y2_tick_count: undefined,\r\n axis_y2_padding: {},\r\n axis_y2_default: undefined,\r\n // grid\r\n grid_x_show: false,\r\n grid_x_type: 'tick',\r\n grid_x_lines: [],\r\n grid_y_show: false,\r\n // not used\r\n // grid_y_type: 'tick',\r\n grid_y_lines: [],\r\n grid_y_ticks: 10,\r\n grid_focus_show: true,\r\n grid_lines_front: true,\r\n // point - point of each data\r\n point_show: true,\r\n point_r: 2.5,\r\n point_sensitivity: 10,\r\n point_focus_expand_enabled: true,\r\n point_focus_expand_r: undefined,\r\n point_select_r: undefined,\r\n // line\r\n line_connectNull: false,\r\n line_step_type: 'step',\r\n // bar\r\n bar_width: undefined,\r\n bar_width_ratio: 0.6,\r\n bar_width_max: undefined,\r\n bar_zerobased: true,\r\n bar_space: 0,\r\n // area\r\n area_zerobased: true,\r\n area_above: false,\r\n // pie\r\n pie_label_show: true,\r\n pie_label_format: undefined,\r\n pie_label_threshold: 0.05,\r\n pie_label_ratio: undefined,\r\n pie_expand: {},\r\n pie_expand_duration: 50,\r\n pie_padAngle: 0,\r\n // gauge\r\n gauge_fullCircle: false,\r\n gauge_label_show: true,\r\n gauge_labelLine_show: true,\r\n gauge_label_format: undefined,\r\n gauge_min: 0,\r\n gauge_max: 100,\r\n gauge_startingAngle: (-1 * Math.PI) / 2,\r\n gauge_label_extents: undefined,\r\n gauge_units: undefined,\r\n gauge_width: undefined,\r\n gauge_arcs_minWidth: 5,\r\n gauge_expand: {},\r\n gauge_expand_duration: 50,\r\n // donut\r\n donut_label_show: true,\r\n donut_label_format: undefined,\r\n donut_label_threshold: 0.05,\r\n donut_label_ratio: undefined,\r\n donut_width: undefined,\r\n donut_title: '',\r\n donut_expand: {},\r\n donut_expand_duration: 50,\r\n donut_padAngle: 0,\r\n // spline\r\n spline_interpolation_type: 'cardinal',\r\n // stanford\r\n stanford_lines: [],\r\n stanford_regions: [],\r\n stanford_texts: [],\r\n stanford_scaleMin: undefined,\r\n stanford_scaleMax: undefined,\r\n stanford_scaleWidth: undefined,\r\n stanford_scaleFormat: undefined,\r\n stanford_scaleValues: undefined,\r\n stanford_colors: undefined,\r\n stanford_padding: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n },\r\n // region - region to change style\r\n regions: [],\r\n // tooltip - show when mouseover on each data\r\n tooltip_show: true,\r\n tooltip_grouped: true,\r\n tooltip_order: undefined,\r\n tooltip_format_title: undefined,\r\n tooltip_format_name: undefined,\r\n tooltip_format_value: undefined,\r\n tooltip_horizontal: undefined,\r\n tooltip_position: undefined,\r\n tooltip_contents: function (d, defaultTitleFormat, defaultValueFormat, color) {\r\n return this.getTooltipContent\r\n ? this.getTooltipContent(d, defaultTitleFormat, defaultValueFormat, color)\r\n : '';\r\n },\r\n tooltip_init_show: false,\r\n tooltip_init_x: 0,\r\n tooltip_init_position: { top: '0px', left: '50px' },\r\n tooltip_onshow: function () { },\r\n tooltip_onhide: function () { },\r\n // title\r\n title_text: undefined,\r\n title_padding: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n },\r\n title_position: 'top-center'\r\n };\r\n Object.keys(this.additionalConfig).forEach(function (key) {\r\n config[key] = this.additionalConfig[key];\r\n }, this);\r\n return config;\r\n };\r\n ChartInternal.prototype.additionalConfig = {};\r\n ChartInternal.prototype.loadConfig = function (config) {\r\n var this_config = this.config, target, keys, read;\r\n function find() {\r\n var key = keys.shift();\r\n // console.log(\"key =>\", key, \", target =>\", target);\r\n if (key && target && typeof target === 'object' && key in target) {\r\n target = target[key];\r\n return find();\r\n }\r\n else if (!key) {\r\n return target;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n Object.keys(this_config).forEach(function (key) {\r\n target = config;\r\n keys = key.split('_');\r\n read = find();\r\n // console.log(\"CONFIG : \", key, read);\r\n if (isDefined(read)) {\r\n this_config[key] = read;\r\n }\r\n });\r\n };\n\n ChartInternal.prototype.convertUrlToData = function (url, mimeType, headers, keys, done) {\r\n var $$ = this, type = mimeType ? mimeType : 'csv', f, converter;\r\n if (type === 'json') {\r\n f = $$.d3.json;\r\n converter = $$.convertJsonToData;\r\n }\r\n else if (type === 'tsv') {\r\n f = $$.d3.tsv;\r\n converter = $$.convertXsvToData;\r\n }\r\n else {\r\n f = $$.d3.csv;\r\n converter = $$.convertXsvToData;\r\n }\r\n f(url, headers)\r\n .then(function (data) {\r\n done.call($$, converter.call($$, data, keys));\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n };\r\n ChartInternal.prototype.convertXsvToData = function (xsv) {\r\n var keys = xsv.columns, rows = xsv;\r\n if (rows.length === 0) {\r\n return {\r\n keys: keys,\r\n rows: [keys.reduce(function (row, key) {\r\n var _a;\r\n return Object.assign(row, (_a = {}, _a[key] = null, _a));\r\n }, {})]\r\n };\r\n }\r\n else {\r\n // [].concat() is to convert result into a plain array otherwise\r\n // test is not happy because rows have properties.\r\n return { keys: keys, rows: [].concat(xsv) };\r\n }\r\n };\r\n ChartInternal.prototype.convertJsonToData = function (json, keys) {\r\n var $$ = this, new_rows = [], targetKeys, data;\r\n if (keys) {\r\n // when keys specified, json would be an array that includes objects\r\n if (keys.x) {\r\n targetKeys = keys.value.concat(keys.x);\r\n $$.config.data_x = keys.x;\r\n }\r\n else {\r\n targetKeys = keys.value;\r\n }\r\n new_rows.push(targetKeys);\r\n json.forEach(function (o) {\r\n var new_row = [];\r\n targetKeys.forEach(function (key) {\r\n // convert undefined to null because undefined data will be removed in convertDataToTargets()\r\n var v = $$.findValueInJson(o, key);\r\n if (isUndefined(v)) {\r\n v = null;\r\n }\r\n new_row.push(v);\r\n });\r\n new_rows.push(new_row);\r\n });\r\n data = $$.convertRowsToData(new_rows);\r\n }\r\n else {\r\n Object.keys(json).forEach(function (key) {\r\n new_rows.push([key].concat(json[key]));\r\n });\r\n data = $$.convertColumnsToData(new_rows);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Finds value from the given nested object by the given path.\r\n * If it's not found, then this returns undefined.\r\n * @param {Object} object the object\r\n * @param {string} path the path\r\n */\r\n ChartInternal.prototype.findValueInJson = function (object, path) {\r\n if (path in object) {\r\n // If object has a key that contains . or [], return the key's value\r\n // instead of searching for an inner object.\r\n // See https://github.com/c3js/c3/issues/1691 for details.\r\n return object[path];\r\n }\r\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties (replace [] with .)\r\n path = path.replace(/^\\./, ''); // strip a leading dot\r\n var pathArray = path.split('.');\r\n for (var i = 0; i < pathArray.length; ++i) {\r\n var k = pathArray[i];\r\n if (k in object) {\r\n object = object[k];\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return object;\r\n };\r\n /**\r\n * Converts the rows to normalized data.\r\n * @param {any[][]} rows The row data\r\n * @return {Object}\r\n */\r\n ChartInternal.prototype.convertRowsToData = function (rows) {\r\n var newRows = [];\r\n var keys = rows[0];\r\n for (var i = 1; i < rows.length; i++) {\r\n var newRow = {};\r\n for (var j = 0; j < rows[i].length; j++) {\r\n if (isUndefined(rows[i][j])) {\r\n throw new Error('Source data is missing a component at (' + i + ',' + j + ')!');\r\n }\r\n newRow[keys[j]] = rows[i][j];\r\n }\r\n newRows.push(newRow);\r\n }\r\n return { keys: keys, rows: newRows };\r\n };\r\n /**\r\n * Converts the columns to normalized data.\r\n * @param {any[][]} columns The column data\r\n * @return {Object}\r\n */\r\n ChartInternal.prototype.convertColumnsToData = function (columns) {\r\n var newRows = [];\r\n var keys = [];\r\n for (var i = 0; i < columns.length; i++) {\r\n var key = columns[i][0];\r\n for (var j = 1; j < columns[i].length; j++) {\r\n if (isUndefined(newRows[j - 1])) {\r\n newRows[j - 1] = {};\r\n }\r\n if (isUndefined(columns[i][j])) {\r\n throw new Error('Source data is missing a component at (' + i + ',' + j + ')!');\r\n }\r\n newRows[j - 1][key] = columns[i][j];\r\n }\r\n keys.push(key);\r\n }\r\n return { keys: keys, rows: newRows };\r\n };\r\n /**\r\n * Converts the data format into the target format.\r\n * @param {!Object} data\r\n * @param {!Array} data.keys Ordered list of target IDs.\r\n * @param {!Array} data.rows Rows of data to convert.\r\n * @param {boolean} appendXs True to append to $$.data.xs, False to replace.\r\n * @return {!Array}\r\n */\r\n ChartInternal.prototype.convertDataToTargets = function (data, appendXs) {\r\n var $$ = this, config = $$.config, targets, ids, xs, keys, epochs;\r\n // handles format where keys are not orderly provided\r\n if (isArray(data)) {\r\n keys = Object.keys(data[0]);\r\n }\r\n else {\r\n keys = data.keys;\r\n data = data.rows;\r\n }\r\n xs = keys.filter($$.isX, $$);\r\n if (!$$.isStanfordGraphType()) {\r\n ids = keys.filter($$.isNotX, $$);\r\n }\r\n else {\r\n epochs = keys.filter($$.isEpochs, $$);\r\n ids = keys.filter($$.isNotXAndNotEpochs, $$);\r\n if (xs.length !== 1 || epochs.length !== 1 || ids.length !== 1) {\r\n throw new Error(\"You must define the 'x' key name and the 'epochs' for Stanford Diagrams\");\r\n }\r\n }\r\n // save x for update data by load when custom x and c3.x API\r\n ids.forEach(function (id) {\r\n var xKey = $$.getXKey(id);\r\n if ($$.isCustomX() || $$.isTimeSeries()) {\r\n // if included in input data\r\n if (xs.indexOf(xKey) >= 0) {\r\n $$.data.xs[id] = (appendXs && $$.data.xs[id]\r\n ? $$.data.xs[id]\r\n : []).concat(data\r\n .map(function (d) {\r\n return d[xKey];\r\n })\r\n .filter(isValue)\r\n .map(function (rawX, i) {\r\n return $$.generateTargetX(rawX, id, i);\r\n }));\r\n }\r\n // if not included in input data, find from preloaded data of other id's x\r\n else if (config.data_x) {\r\n $$.data.xs[id] = $$.getOtherTargetXs();\r\n }\r\n // if not included in input data, find from preloaded data\r\n else if (notEmpty(config.data_xs)) {\r\n $$.data.xs[id] = $$.getXValuesOfXKey(xKey, $$.data.targets);\r\n }\r\n // MEMO: if no x included, use same x of current will be used\r\n }\r\n else {\r\n $$.data.xs[id] = data.map(function (d, i) {\r\n return i;\r\n });\r\n }\r\n });\r\n // check x is defined\r\n ids.forEach(function (id) {\r\n if (!$$.data.xs[id]) {\r\n throw new Error('x is not defined for id = \"' + id + '\".');\r\n }\r\n });\r\n // convert to target\r\n targets = ids.map(function (id, index) {\r\n var convertedId = config.data_idConverter(id);\r\n return {\r\n id: convertedId,\r\n id_org: id,\r\n values: data\r\n .map(function (d, i) {\r\n var xKey = $$.getXKey(id), rawX = d[xKey], value = d[id] !== null && !isNaN(d[id]) ? +d[id] : null, x, returnData;\r\n // use x as categories if custom x and categorized\r\n if ($$.isCustomX() && $$.isCategorized() && !isUndefined(rawX)) {\r\n if (index === 0 && i === 0) {\r\n config.axis_x_categories = [];\r\n }\r\n x = config.axis_x_categories.indexOf(rawX);\r\n if (x === -1) {\r\n x = config.axis_x_categories.length;\r\n config.axis_x_categories.push(rawX);\r\n }\r\n }\r\n else {\r\n x = $$.generateTargetX(rawX, id, i);\r\n }\r\n // mark as x = undefined if value is undefined and filter to remove after mapped\r\n if (isUndefined(d[id]) || $$.data.xs[id].length <= i) {\r\n x = undefined;\r\n }\r\n returnData = { x: x, value: value, id: convertedId };\r\n if ($$.isStanfordGraphType()) {\r\n returnData.epochs = d[epochs];\r\n }\r\n return returnData;\r\n })\r\n .filter(function (v) {\r\n return isDefined(v.x);\r\n })\r\n };\r\n });\r\n // finish targets\r\n targets.forEach(function (t) {\r\n var i;\r\n // sort values by its x\r\n if (config.data_xSort) {\r\n t.values = t.values.sort(function (v1, v2) {\r\n var x1 = v1.x || v1.x === 0 ? v1.x : Infinity, x2 = v2.x || v2.x === 0 ? v2.x : Infinity;\r\n return x1 - x2;\r\n });\r\n }\r\n // indexing each value\r\n i = 0;\r\n t.values.forEach(function (v) {\r\n v.index = i++;\r\n });\r\n // this needs to be sorted because its index and value.index is identical\r\n $$.data.xs[t.id].sort(function (v1, v2) {\r\n return v1 - v2;\r\n });\r\n });\r\n // cache information about values\r\n $$.hasNegativeValue = $$.hasNegativeValueInTargets(targets);\r\n $$.hasPositiveValue = $$.hasPositiveValueInTargets(targets);\r\n // set target types\r\n if (config.data_type) {\r\n $$.setTargetType($$.mapToIds(targets).filter(function (id) {\r\n return !(id in config.data_types);\r\n }), config.data_type);\r\n }\r\n // cache as original id keyed\r\n targets.forEach(function (d) {\r\n $$.addCache(d.id_org, d);\r\n });\r\n return targets;\r\n };\n\n ChartInternal.prototype.isEpochs = function (key) {\r\n var $$ = this, config = $$.config;\r\n return config.data_epochs && key === config.data_epochs;\r\n };\r\n ChartInternal.prototype.isX = function (key) {\r\n var $$ = this, config = $$.config;\r\n return ((config.data_x && key === config.data_x) ||\r\n (notEmpty(config.data_xs) && hasValue(config.data_xs, key)));\r\n };\r\n ChartInternal.prototype.isNotX = function (key) {\r\n return !this.isX(key);\r\n };\r\n ChartInternal.prototype.isNotXAndNotEpochs = function (key) {\r\n return !this.isX(key) && !this.isEpochs(key);\r\n };\r\n /**\r\n * Returns whether the normalized stack option is enabled or not.\r\n *\r\n * To be enabled it must also have data.groups defined.\r\n *\r\n * @return {boolean}\r\n */\r\n ChartInternal.prototype.isStackNormalized = function () {\r\n return this.config.data_stack_normalize && this.config.data_groups.length > 0;\r\n };\r\n /**\r\n * Returns whether the axis is normalized or not.\r\n *\r\n * An axis is normalized as long as one of its associated target\r\n * is normalized.\r\n *\r\n * @param axisId Axis ID (y or y2)\r\n * @return {Boolean}\r\n */\r\n ChartInternal.prototype.isAxisNormalized = function (axisId) {\r\n var $$ = this;\r\n if (!$$.isStackNormalized()) {\r\n // shortcut\r\n return false;\r\n }\r\n return $$.data.targets\r\n .filter(function (target) { return $$.axis.getId(target.id) === axisId; })\r\n .some(function (target) { return $$.isTargetNormalized(target.id); });\r\n };\r\n /**\r\n * Returns whether the values for this target ID is normalized or not.\r\n *\r\n * To be normalized the option needs to be enabled and target needs\r\n * to be defined in `data.groups`.\r\n *\r\n * @param targetId ID of the target\r\n * @return {Boolean} True if the target is normalized, false otherwise.\r\n */\r\n ChartInternal.prototype.isTargetNormalized = function (targetId) {\r\n var $$ = this;\r\n return ($$.isStackNormalized() &&\r\n $$.config.data_groups.some(function (group) { return group.includes(targetId); }));\r\n };\r\n ChartInternal.prototype.getXKey = function (id) {\r\n var $$ = this, config = $$.config;\r\n return config.data_x\r\n ? config.data_x\r\n : notEmpty(config.data_xs)\r\n ? config.data_xs[id]\r\n : null;\r\n };\r\n /**\r\n * Get sum of visible data per index for given axis.\r\n *\r\n * Expect axisId to be either 'y' or 'y2'.\r\n *\r\n * @private\r\n * @param axisId Compute sum for data associated to given axis.\r\n * @return {Array}\r\n */\r\n ChartInternal.prototype.getTotalPerIndex = function (axisId) {\r\n var $$ = this;\r\n if (!$$.isStackNormalized()) {\r\n return null;\r\n }\r\n var cached = $$.getFromCache('getTotalPerIndex');\r\n if (cached !== undefined) {\r\n return cached[axisId];\r\n }\r\n var sum = { y: [], y2: [] };\r\n $$.data.targets\r\n // keep only target that are normalized\r\n .filter(function (target) { return $$.isTargetNormalized(target.id); })\r\n // keep only target that are visible\r\n .filter(function (target) { return $$.isTargetToShow(target.id); })\r\n // compute sum per axis\r\n .forEach(function (target) {\r\n var sumByAxis = sum[$$.axis.getId(target.id)];\r\n target.values.forEach(function (v, i) {\r\n if (!sumByAxis[i]) {\r\n sumByAxis[i] = 0;\r\n }\r\n sumByAxis[i] += isNumber(v.value) ? v.value : 0;\r\n });\r\n });\r\n $$.addToCache('getTotalPerIndex', sum);\r\n return sum[axisId];\r\n };\r\n /**\r\n * Get sum of visible data.\r\n *\r\n * Should be used for normalised data only since all values\r\n * are expected to be positive.\r\n *\r\n * @private\r\n * @return {Number}\r\n */\r\n ChartInternal.prototype.getTotalDataSum = function () {\r\n var $$ = this;\r\n var cached = $$.getFromCache('getTotalDataSum');\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n var totalDataSum = flattenArray($$.data.targets\r\n .filter(function (target) { return $$.isTargetToShow(target.id); })\r\n .map(function (target) { return target.values; }))\r\n .map(function (d) { return d.value; })\r\n .reduce(function (p, c) { return p + c; }, 0);\r\n $$.addToCache('getTotalDataSum', totalDataSum);\r\n return totalDataSum;\r\n };\r\n ChartInternal.prototype.getXValuesOfXKey = function (key, targets) {\r\n var $$ = this, xValues, ids = targets && notEmpty(targets) ? $$.mapToIds(targets) : [];\r\n ids.forEach(function (id) {\r\n if ($$.getXKey(id) === key) {\r\n xValues = $$.data.xs[id];\r\n }\r\n });\r\n return xValues;\r\n };\r\n ChartInternal.prototype.getXValue = function (id, i) {\r\n var $$ = this;\r\n return id in $$.data.xs && $$.data.xs[id] && isValue($$.data.xs[id][i])\r\n ? $$.data.xs[id][i]\r\n : i;\r\n };\r\n ChartInternal.prototype.getOtherTargetXs = function () {\r\n var $$ = this, idsForX = Object.keys($$.data.xs);\r\n return idsForX.length ? $$.data.xs[idsForX[0]] : null;\r\n };\r\n ChartInternal.prototype.getOtherTargetX = function (index) {\r\n var xs = this.getOtherTargetXs();\r\n return xs && index < xs.length ? xs[index] : null;\r\n };\r\n ChartInternal.prototype.addXs = function (xs) {\r\n var $$ = this;\r\n Object.keys(xs).forEach(function (id) {\r\n $$.config.data_xs[id] = xs[id];\r\n });\r\n };\r\n ChartInternal.prototype.addName = function (data) {\r\n var $$ = this, name;\r\n if (data) {\r\n name = $$.config.data_names[data.id];\r\n data.name = name !== undefined ? name : data.id;\r\n }\r\n return data;\r\n };\r\n ChartInternal.prototype.getValueOnIndex = function (values, index) {\r\n var valueOnIndex = values.filter(function (v) {\r\n return v.index === index;\r\n });\r\n return valueOnIndex.length ? valueOnIndex[0] : null;\r\n };\r\n ChartInternal.prototype.updateTargetX = function (targets, x) {\r\n var $$ = this;\r\n targets.forEach(function (t) {\r\n t.values.forEach(function (v, i) {\r\n v.x = $$.generateTargetX(x[i], t.id, i);\r\n });\r\n $$.data.xs[t.id] = x;\r\n });\r\n };\r\n ChartInternal.prototype.updateTargetXs = function (targets, xs) {\r\n var $$ = this;\r\n targets.forEach(function (t) {\r\n if (xs[t.id]) {\r\n $$.updateTargetX([t], xs[t.id]);\r\n }\r\n });\r\n };\r\n ChartInternal.prototype.generateTargetX = function (rawX, id, index) {\r\n var $$ = this, x;\r\n if ($$.isTimeSeries()) {\r\n x = rawX ? $$.parseDate(rawX) : $$.parseDate($$.getXValue(id, index));\r\n }\r\n else if ($$.isCustomX() && !$$.isCategorized()) {\r\n x = isValue(rawX) ? +rawX : $$.getXValue(id, index);\r\n }\r\n else {\r\n x = index;\r\n }\r\n return x;\r\n };\r\n ChartInternal.prototype.cloneTarget = function (target) {\r\n return {\r\n id: target.id,\r\n id_org: target.id_org,\r\n values: target.values.map(function (d) {\r\n return {\r\n x: d.x,\r\n value: d.value,\r\n id: d.id\r\n };\r\n })\r\n };\r\n };\r\n ChartInternal.prototype.getMaxDataCount = function () {\r\n var $$ = this;\r\n return $$.d3.max($$.data.targets, function (t) {\r\n return t.values.length;\r\n });\r\n };\r\n ChartInternal.prototype.mapToIds = function (targets) {\r\n return targets.map(function (d) {\r\n return d.id;\r\n });\r\n };\r\n ChartInternal.prototype.mapToTargetIds = function (ids) {\r\n var $$ = this;\r\n return ids ? [].concat(ids) : $$.mapToIds($$.data.targets);\r\n };\r\n ChartInternal.prototype.hasTarget = function (targets, id) {\r\n var ids = this.mapToIds(targets), i;\r\n for (i = 0; i < ids.length; i++) {\r\n if (ids[i] === id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n ChartInternal.prototype.isTargetToShow = function (targetId) {\r\n return this.hiddenTargetIds.indexOf(targetId) < 0;\r\n };\r\n ChartInternal.prototype.isLegendToShow = function (targetId) {\r\n return this.hiddenLegendIds.indexOf(targetId) < 0;\r\n };\r\n /**\r\n * Returns only visible targets.\r\n *\r\n * This is the same as calling {@link filterTargetsToShow} on $$.data.targets.\r\n *\r\n * @return {Array}\r\n */\r\n ChartInternal.prototype.getTargetsToShow = function () {\r\n var $$ = this;\r\n return $$.filterTargetsToShow($$.data.targets);\r\n };\r\n ChartInternal.prototype.filterTargetsToShow = function (targets) {\r\n var $$ = this;\r\n return targets.filter(function (t) {\r\n return $$.isTargetToShow(t.id);\r\n });\r\n };\r\n /**\r\n * @return {Array} Returns all the targets attached to the chart, visible or not\r\n */\r\n ChartInternal.prototype.getTargets = function () {\r\n var $$ = this;\r\n return $$.data.targets;\r\n };\r\n ChartInternal.prototype.mapTargetsToUniqueXs = function (targets) {\r\n var $$ = this;\r\n var xs = $$.d3\r\n .set($$.d3.merge(targets.map(function (t) {\r\n return t.values.map(function (v) {\r\n return +v.x;\r\n });\r\n })))\r\n .values();\r\n xs = $$.isTimeSeries()\r\n ? xs.map(function (x) {\r\n return new Date(+x);\r\n })\r\n : xs.map(function (x) {\r\n return +x;\r\n });\r\n return xs.sort(function (a, b) {\r\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\r\n });\r\n };\r\n ChartInternal.prototype.addHiddenTargetIds = function (targetIds) {\r\n targetIds = targetIds instanceof Array ? targetIds : new Array(targetIds);\r\n for (var i = 0; i < targetIds.length; i++) {\r\n if (this.hiddenTargetIds.indexOf(targetIds[i]) < 0) {\r\n this.hiddenTargetIds = this.hiddenTargetIds.concat(targetIds[i]);\r\n }\r\n }\r\n this.resetCache();\r\n };\r\n ChartInternal.prototype.removeHiddenTargetIds = function (targetIds) {\r\n this.hiddenTargetIds = this.hiddenTargetIds.filter(function (id) {\r\n return targetIds.indexOf(id) < 0;\r\n });\r\n this.resetCache();\r\n };\r\n ChartInternal.prototype.addHiddenLegendIds = function (targetIds) {\r\n targetIds = targetIds instanceof Array ? targetIds : new Array(targetIds);\r\n for (var i = 0; i < targetIds.length; i++) {\r\n if (this.hiddenLegendIds.indexOf(targetIds[i]) < 0) {\r\n this.hiddenLegendIds = this.hiddenLegendIds.concat(targetIds[i]);\r\n }\r\n }\r\n };\r\n ChartInternal.prototype.removeHiddenLegendIds = function (targetIds) {\r\n this.hiddenLegendIds = this.hiddenLegendIds.filter(function (id) {\r\n return targetIds.indexOf(id) < 0;\r\n });\r\n };\r\n ChartInternal.prototype.getValuesAsIdKeyed = function (targets) {\r\n var ys = {};\r\n targets.forEach(function (t) {\r\n ys[t.id] = [];\r\n t.values.forEach(function (v) {\r\n ys[t.id].push(v.value);\r\n });\r\n });\r\n return ys;\r\n };\r\n ChartInternal.prototype.checkValueInTargets = function (targets, checker) {\r\n var ids = Object.keys(targets), i, j, values;\r\n for (i = 0; i < ids.length; i++) {\r\n values = targets[ids[i]].values;\r\n for (j = 0; j < values.length; j++) {\r\n if (checker(values[j].value)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n ChartInternal.prototype.hasNegativeValueInTargets = function (targets) {\r\n return this.checkValueInTargets(targets, function (v) {\r\n return v < 0;\r\n });\r\n };\r\n ChartInternal.prototype.hasPositiveValueInTargets = function (targets) {\r\n return this.checkValueInTargets(targets, function (v) {\r\n return v > 0;\r\n });\r\n };\r\n ChartInternal.prototype.isOrderDesc = function () {\r\n var config = this.config;\r\n return (typeof config.data_order === 'string' &&\r\n config.data_order.toLowerCase() === 'desc');\r\n };\r\n ChartInternal.prototype.isOrderAsc = function () {\r\n var config = this.config;\r\n return (typeof config.data_order === 'string' &&\r\n config.data_order.toLowerCase() === 'asc');\r\n };\r\n ChartInternal.prototype.getOrderFunction = function () {\r\n var $$ = this, config = $$.config, orderAsc = $$.isOrderAsc(), orderDesc = $$.isOrderDesc();\r\n if (orderAsc || orderDesc) {\r\n var reducer = function (p, c) {\r\n return p + Math.abs(c.value);\r\n };\r\n return function (t1, t2) {\r\n var t1Sum = t1.values.reduce(reducer, 0), t2Sum = t2.values.reduce(reducer, 0);\r\n return orderAsc ? t2Sum - t1Sum : t1Sum - t2Sum;\r\n };\r\n }\r\n else if (isFunction(config.data_order)) {\r\n return config.data_order;\r\n }\r\n else if (isArray(config.data_order)) {\r\n var order = config.data_order;\r\n return function (t1, t2) {\r\n return order.indexOf(t1.id) - order.indexOf(t2.id);\r\n };\r\n }\r\n };\r\n ChartInternal.prototype.orderTargets = function (targets) {\r\n var fct = this.getOrderFunction();\r\n if (fct) {\r\n targets.sort(fct);\r\n }\r\n return targets;\r\n };\r\n /**\r\n * Returns all the values from the given targets at the given index.\r\n *\r\n * @param {Array} targets\r\n * @param {Number} index\r\n * @return {Array}\r\n */\r\n ChartInternal.prototype.filterByIndex = function (targets, index) {\r\n return this.d3.merge(targets.map(function (t) { return t.values.filter(function (v) { return v.index === index; }); }));\r\n };\r\n ChartInternal.prototype.filterByX = function (targets, x) {\r\n return this.d3\r\n .merge(targets.map(function (t) {\r\n return t.values;\r\n }))\r\n .filter(function (v) {\r\n return v.x - x === 0;\r\n });\r\n };\r\n ChartInternal.prototype.filterRemoveNull = function (data) {\r\n return data.filter(function (d) {\r\n return isValue(d.value);\r\n });\r\n };\r\n ChartInternal.prototype.filterByXDomain = function (targets, xDomain) {\r\n return targets.map(function (t) {\r\n return {\r\n id: t.id,\r\n id_org: t.id_org,\r\n values: t.values.filter(function (v) {\r\n return xDomain[0] <= v.x && v.x <= xDomain[1];\r\n })\r\n };\r\n });\r\n };\r\n ChartInternal.prototype.hasDataLabel = function () {\r\n var config = this.config;\r\n if (typeof config.data_labels === 'boolean' && config.data_labels) {\r\n return true;\r\n }\r\n else if (typeof config.data_labels === 'object' &&\r\n notEmpty(config.data_labels)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n ChartInternal.prototype.getDataLabelLength = function (min, max, key) {\r\n var $$ = this, lengths = [0, 0], paddingCoef = 1.3;\r\n $$.selectChart\r\n .select('svg')\r\n .selectAll('.dummy')\r\n .data([min, max])\r\n .enter()\r\n .append('text')\r\n .text(function (d) {\r\n return $$.dataLabelFormat(d.id)(d);\r\n })\r\n .each(function (d, i) {\r\n lengths[i] = getBBox(this)[key] * paddingCoef;\r\n })\r\n .remove();\r\n return lengths;\r\n };\r\n /**\r\n * Returns true if the given data point is not arc type, otherwise false.\r\n * @param {Object} d The data point\r\n * @return {boolean}\r\n */\r\n ChartInternal.prototype.isNoneArc = function (d) {\r\n return this.hasTarget(this.data.targets, d.id);\r\n };\r\n /**\r\n * Returns true if the given data point is arc type, otherwise false.\r\n * @param {Object} d The data point\r\n * @return {boolean}\r\n */\r\n ChartInternal.prototype.isArc = function (d) {\r\n return 'data' in d && this.hasTarget(this.data.targets, d.data.id);\r\n };\r\n /**\r\n * Find the closest point from the given pos among the given targets or\r\n * undefined if none satisfies conditions.\r\n *\r\n * @param {Array} targets\r\n * @param {Array} pos An [x,y] coordinate\r\n * @return {Object|undefined}\r\n */\r\n ChartInternal.prototype.findClosestFromTargets = function (targets, pos) {\r\n var $$ = this;\r\n // for each target, find the closest point\r\n var candidates = targets\r\n .map(function (t) {\r\n return $$.findClosest(t.values, pos, $$.config.tooltip_horizontal\r\n ? $$.horizontalDistance.bind($$)\r\n : $$.dist.bind($$), $$.config.point_sensitivity);\r\n })\r\n .filter(function (v) { return v; });\r\n // returns the closest of candidates\r\n if (candidates.length === 0) {\r\n return undefined;\r\n }\r\n else if (candidates.length === 1) {\r\n return candidates[0];\r\n }\r\n else {\r\n return $$.findClosest(candidates, pos, $$.dist.bind($$));\r\n }\r\n };\r\n /**\r\n * Find the closest point from the x value or undefined if none satisfies conditions.\r\n *\r\n * @param {Array} targets\r\n * @param {Array} x A value on X axis\r\n * @return {Object|undefined}\r\n */\r\n ChartInternal.prototype.findClosestFromTargetsByX = function (targets, x) {\r\n var closest;\r\n var diff;\r\n targets.forEach(function (t) {\r\n t.values.forEach(function (d) {\r\n var newDiff = Math.abs(x - d.x);\r\n if (diff === undefined || newDiff < diff) {\r\n closest = d;\r\n diff = newDiff;\r\n }\r\n });\r\n });\r\n return closest;\r\n };\r\n /**\r\n * Using given compute distance method, returns the closest data point from the\r\n * given position.\r\n *\r\n * Giving optionally a minimum distance to satisfy.\r\n *\r\n * @param {Array} dataPoints List of DataPoints\r\n * @param {Array} pos An [x,y] coordinate\r\n * @param {Function} computeDist Function to compute distance between 2 points\r\n * @param {Number} minDist Minimal distance to satisfy\r\n * @return {Object|undefined} Closest data point\r\n */\r\n ChartInternal.prototype.findClosest = function (dataPoints, pos, computeDist, minDist) {\r\n if (minDist === void 0) { minDist = Infinity; }\r\n var $$ = this;\r\n var closest;\r\n // find closest bar\r\n dataPoints\r\n .filter(function (v) { return v && $$.isBarType(v.id); })\r\n .forEach(function (v) {\r\n if (!closest) {\r\n var shape = $$.main\r\n .select('.' +\r\n CLASS.bars +\r\n $$.getTargetSelectorSuffix(v.id) +\r\n ' .' +\r\n CLASS.bar +\r\n '-' +\r\n v.index)\r\n .node();\r\n if ($$.isWithinBar(pos, shape)) {\r\n closest = v;\r\n }\r\n }\r\n });\r\n // find closest point from non-bar\r\n dataPoints\r\n .filter(function (v) { return v && !$$.isBarType(v.id); })\r\n .forEach(function (v) {\r\n var d = computeDist(v, pos);\r\n if (d < minDist) {\r\n minDist = d;\r\n closest = v;\r\n }\r\n });\r\n return closest;\r\n };\r\n ChartInternal.prototype.dist = function (data, pos) {\r\n var $$ = this, config = $$.config, xIndex = config.axis_rotated ? 1 : 0, yIndex = config.axis_rotated ? 0 : 1, y = $$.circleY(data, data.index), x = $$.x(data.x);\r\n return Math.sqrt(Math.pow(x - pos[xIndex], 2) + Math.pow(y - pos[yIndex], 2));\r\n };\r\n ChartInternal.prototype.horizontalDistance = function (data, pos) {\r\n var $$ = this, config = $$.config, xIndex = config.axis_rotated ? 1 : 0, x = $$.x(data.x);\r\n return Math.abs(x - pos[xIndex]);\r\n };\r\n ChartInternal.prototype.convertValuesToStep = function (values) {\r\n var converted = [].concat(values), i;\r\n if (!this.isCategorized()) {\r\n return values;\r\n }\r\n for (i = values.length + 1; 0 < i; i--) {\r\n converted[i] = converted[i - 1];\r\n }\r\n converted[0] = {\r\n x: converted[0].x - 1,\r\n value: converted[0].value,\r\n id: converted[0].id\r\n };\r\n converted[values.length + 1] = {\r\n x: converted[values.length].x + 1,\r\n value: converted[values.length].value,\r\n id: converted[values.length].id\r\n };\r\n return converted;\r\n };\r\n /**\r\n * Get ratio value\r\n *\r\n * @param {String} type Ratio for given type\r\n * @param {Object} d Data value object\r\n * @param {Boolean} asPercent Convert the return as percent or not\r\n * @return {Number} Ratio value\r\n * @private\r\n */\r\n ChartInternal.prototype.getRatio = function (type, d, asPercent) {\r\n if (asPercent === void 0) { asPercent = false; }\r\n var $$ = this;\r\n var api = $$.api;\r\n var ratio = 0;\r\n if (d && api.data.shown.call(api).length) {\r\n ratio = d.ratio || d.value;\r\n if (type === 'arc') {\r\n if ($$.hasType('gauge')) {\r\n ratio =\r\n (d.endAngle - d.startAngle) /\r\n (Math.PI * ($$.config.gauge_fullCircle ? 2 : 1));\r\n }\r\n else {\r\n var total = $$.getTotalDataSum();\r\n ratio = d.value / total;\r\n }\r\n }\r\n else if (type === 'index') {\r\n var total = $$.getTotalPerIndex($$.axis.getId(d.id));\r\n d.ratio =\r\n isNumber(d.value) && total && total[d.index] > 0\r\n ? d.value / total[d.index]\r\n : 0;\r\n ratio = d.ratio;\r\n }\r\n }\r\n return asPercent && ratio ? ratio * 100 : ratio;\r\n };\r\n ChartInternal.prototype.updateDataAttributes = function (name, attrs) {\r\n var $$ = this, config = $$.config, current = config['data_' + name];\r\n if (typeof attrs === 'undefined') {\r\n return current;\r\n }\r\n Object.keys(attrs).forEach(function (id) {\r\n current[id] = attrs[id];\r\n });\r\n $$.redraw({\r\n withLegend: true\r\n });\r\n return current;\r\n };\n\n ChartInternal.prototype.load = function (targets, args) {\r\n var $$ = this;\r\n if (targets) {\r\n // filter loading targets if needed\r\n if (args.filter) {\r\n targets = targets.filter(args.filter);\r\n }\r\n // set type if args.types || args.type specified\r\n if (args.type || args.types) {\r\n targets.forEach(function (t) {\r\n var type = args.types && args.types[t.id] ? args.types[t.id] : args.type;\r\n $$.setTargetType(t.id, type);\r\n });\r\n }\r\n // Update/Add data\r\n $$.data.targets.forEach(function (d) {\r\n for (var i = 0; i < targets.length; i++) {\r\n if (d.id === targets[i].id) {\r\n d.values = targets[i].values;\r\n targets.splice(i, 1);\r\n break;\r\n }\r\n }\r\n });\r\n $$.data.targets = $$.data.targets.concat(targets); // add remained\r\n }\r\n // Set targets\r\n $$.updateTargets($$.data.targets);\r\n // Redraw with new targets\r\n $$.redraw({\r\n withUpdateOrgXDomain: true,\r\n withUpdateXDomain: true,\r\n withLegend: true\r\n });\r\n if (args.done) {\r\n args.done();\r\n }\r\n };\r\n ChartInternal.prototype.loadFromArgs = function (args) {\r\n var $$ = this;\r\n $$.resetCache();\r\n if (args.data) {\r\n $$.load($$.convertDataToTargets(args.data), args);\r\n }\r\n else if (args.url) {\r\n $$.convertUrlToData(args.url, args.mimeType, args.headers, args.keys, function (data) {\r\n $$.load($$.convertDataToTargets(data), args);\r\n });\r\n }\r\n else if (args.json) {\r\n $$.load($$.convertDataToTargets($$.convertJsonToData(args.json, args.keys)), args);\r\n }\r\n else if (args.rows) {\r\n $$.load($$.convertDataToTargets($$.convertRowsToData(args.rows)), args);\r\n }\r\n else if (args.columns) {\r\n $$.load($$.convertDataToTargets($$.convertColumnsToData(args.columns)), args);\r\n }\r\n else {\r\n $$.load(null, args);\r\n }\r\n };\r\n ChartInternal.prototype.unload = function (targetIds, done) {\r\n var $$ = this;\r\n $$.resetCache();\r\n if (!done) {\r\n done = function () { };\r\n }\r\n // filter existing target\r\n targetIds = targetIds.filter(function (id) {\r\n return $$.hasTarget($$.data.targets, id);\r\n });\r\n // If no target, call done and return\r\n if (!targetIds || targetIds.length === 0) {\r\n done();\r\n return;\r\n }\r\n $$.svg\r\n .selectAll(targetIds.map(function (id) {\r\n return $$.selectorTarget(id);\r\n }))\r\n .transition()\r\n .style('opacity', 0)\r\n .remove()\r\n .call($$.endall, done);\r\n targetIds.forEach(function (id) {\r\n // Reset fadein for future load\r\n $$.withoutFadeIn[id] = false;\r\n // Remove target's elements\r\n if ($$.legend) {\r\n $$.legend\r\n .selectAll('.' + CLASS.legendItem + $$.getTargetSelectorSuffix(id))\r\n .remove();\r\n }\r\n // Remove target\r\n $$.data.targets = $$.data.targets.filter(function (t) {\r\n return t.id !== id;\r\n });\r\n });\r\n };\n\n ChartInternal.prototype.getYDomainMin = function (targets) {\r\n var $$ = this, config = $$.config, ids = $$.mapToIds(targets), ys = $$.getValuesAsIdKeyed(targets), j, k, baseId, idsInGroup, id, hasNegativeValue;\r\n if (config.data_groups.length > 0) {\r\n hasNegativeValue = $$.hasNegativeValueInTargets(targets);\r\n for (j = 0; j < config.data_groups.length; j++) {\r\n // Determine baseId\r\n idsInGroup = config.data_groups[j].filter(function (id) {\r\n return ids.indexOf(id) >= 0;\r\n });\r\n if (idsInGroup.length === 0) {\r\n continue;\r\n }\r\n baseId = idsInGroup[0];\r\n // Consider negative values\r\n if (hasNegativeValue && ys[baseId]) {\r\n ys[baseId].forEach(function (v, i) {\r\n ys[baseId][i] = v < 0 ? v : 0;\r\n });\r\n }\r\n // Compute min\r\n for (k = 1; k < idsInGroup.length; k++) {\r\n id = idsInGroup[k];\r\n if (!ys[id]) {\r\n continue;\r\n }\r\n ys[id].forEach(function (v, i) {\r\n if ($$.axis.getId(id) === $$.axis.getId(baseId) &&\r\n ys[baseId] &&\r\n !(hasNegativeValue && +v > 0)) {\r\n ys[baseId][i] += +v;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return $$.d3.min(Object.keys(ys).map(function (key) {\r\n return $$.d3.min(ys[key]);\r\n }));\r\n };\r\n ChartInternal.prototype.getYDomainMax = function (targets) {\r\n var $$ = this, config = $$.config, ids = $$.mapToIds(targets), ys = $$.getValuesAsIdKeyed(targets), j, k, baseId, idsInGroup, id, hasPositiveValue;\r\n if (config.data_groups.length > 0) {\r\n hasPositiveValue = $$.hasPositiveValueInTargets(targets);\r\n for (j = 0; j < config.data_groups.length; j++) {\r\n // Determine baseId\r\n idsInGroup = config.data_groups[j].filter(function (id) {\r\n return ids.indexOf(id) >= 0;\r\n });\r\n if (idsInGroup.length === 0) {\r\n continue;\r\n }\r\n baseId = idsInGroup[0];\r\n // Consider positive values\r\n if (hasPositiveValue && ys[baseId]) {\r\n ys[baseId].forEach(function (v, i) {\r\n ys[baseId][i] = v > 0 ? v : 0;\r\n });\r\n }\r\n // Compute max\r\n for (k = 1; k < idsInGroup.length; k++) {\r\n id = idsInGroup[k];\r\n if (!ys[id]) {\r\n continue;\r\n }\r\n ys[id].forEach(function (v, i) {\r\n if ($$.axis.getId(id) === $$.axis.getId(baseId) &&\r\n ys[baseId] &&\r\n !(hasPositiveValue && +v < 0)) {\r\n ys[baseId][i] += +v;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return $$.d3.max(Object.keys(ys).map(function (key) {\r\n return $$.d3.max(ys[key]);\r\n }));\r\n };\r\n ChartInternal.prototype.getYDomain = function (targets, axisId, xDomain) {\r\n var $$ = this, config = $$.config;\r\n if ($$.isAxisNormalized(axisId)) {\r\n return [0, 100];\r\n }\r\n var targetsByAxisId = targets.filter(function (t) {\r\n return $$.axis.getId(t.id) === axisId;\r\n }), yTargets = xDomain\r\n ? $$.filterByXDomain(targetsByAxisId, xDomain)\r\n : targetsByAxisId, yMin = axisId === 'y2' ? config.axis_y2_min : config.axis_y_min, yMax = axisId === 'y2' ? config.axis_y2_max : config.axis_y_max, yDomainMin = $$.getYDomainMin(yTargets), yDomainMax = $$.getYDomainMax(yTargets), domain, domainLength, padding_top, padding_bottom, center = axisId === 'y2' ? config.axis_y2_center : config.axis_y_center, yDomainAbs, lengths, diff, ratio, isAllPositive, isAllNegative, isZeroBased = ($$.hasType('bar', yTargets) && config.bar_zerobased) ||\r\n ($$.hasType('area', yTargets) && config.area_zerobased), isInverted = axisId === 'y2' ? config.axis_y2_inverted : config.axis_y_inverted, showHorizontalDataLabel = $$.hasDataLabel() && config.axis_rotated, showVerticalDataLabel = $$.hasDataLabel() && !config.axis_rotated;\r\n // MEMO: avoid inverting domain unexpectedly\r\n yDomainMin = isValue(yMin)\r\n ? yMin\r\n : isValue(yMax)\r\n ? yDomainMin < yMax\r\n ? yDomainMin\r\n : yMax - 10\r\n : yDomainMin;\r\n yDomainMax = isValue(yMax)\r\n ? yMax\r\n : isValue(yMin)\r\n ? yMin < yDomainMax\r\n ? yDomainMax\r\n : yMin + 10\r\n : yDomainMax;\r\n if (yTargets.length === 0) {\r\n // use current domain if target of axisId is none\r\n return axisId === 'y2' ? $$.y2.domain() : $$.y.domain();\r\n }\r\n if (isNaN(yDomainMin)) {\r\n // set minimum to zero when not number\r\n yDomainMin = 0;\r\n }\r\n if (isNaN(yDomainMax)) {\r\n // set maximum to have same value as yDomainMin\r\n yDomainMax = yDomainMin;\r\n }\r\n if (yDomainMin === yDomainMax) {\r\n yDomainMin < 0 ? (yDomainMax = 0) : (yDomainMin = 0);\r\n }\r\n isAllPositive = yDomainMin >= 0 && yDomainMax >= 0;\r\n isAllNegative = yDomainMin <= 0 && yDomainMax <= 0;\r\n // Cancel zerobased if axis_*_min / axis_*_max specified\r\n if ((isValue(yMin) && isAllPositive) || (isValue(yMax) && isAllNegative)) {\r\n isZeroBased = false;\r\n }\r\n // Bar/Area chart should be 0-based if all positive|negative\r\n if (isZeroBased) {\r\n if (isAllPositive) {\r\n yDomainMin = 0;\r\n }\r\n if (isAllNegative) {\r\n yDomainMax = 0;\r\n }\r\n }\r\n domainLength = Math.abs(yDomainMax - yDomainMin);\r\n padding_top = padding_bottom = domainLength * 0.1;\r\n if (typeof center !== 'undefined') {\r\n yDomainAbs = Math.max(Math.abs(yDomainMin), Math.abs(yDomainMax));\r\n yDomainMax = center + yDomainAbs;\r\n yDomainMin = center - yDomainAbs;\r\n }\r\n // add padding for data label\r\n if (showHorizontalDataLabel) {\r\n lengths = $$.getDataLabelLength(yDomainMin, yDomainMax, 'width');\r\n diff = diffDomain($$.y.range());\r\n ratio = [lengths[0] / diff, lengths[1] / diff];\r\n padding_top += domainLength * (ratio[1] / (1 - ratio[0] - ratio[1]));\r\n padding_bottom += domainLength * (ratio[0] / (1 - ratio[0] - ratio[1]));\r\n }\r\n else if (showVerticalDataLabel) {\r\n lengths = $$.getDataLabelLength(yDomainMin, yDomainMax, 'height');\r\n var pixelsToAxisPadding = $$.getY(config[\"axis_\" + axisId + \"_type\"], \r\n // input domain as pixels\r\n [0, config.axis_rotated ? $$.width : $$.height], \r\n // output range as axis padding\r\n [0, domainLength]);\r\n padding_top += pixelsToAxisPadding(lengths[1]);\r\n padding_bottom += pixelsToAxisPadding(lengths[0]);\r\n }\r\n if (axisId === 'y' && notEmpty(config.axis_y_padding)) {\r\n padding_top = $$.axis.getPadding(config.axis_y_padding, 'top', padding_top, domainLength);\r\n padding_bottom = $$.axis.getPadding(config.axis_y_padding, 'bottom', padding_bottom, domainLength);\r\n }\r\n if (axisId === 'y2' && notEmpty(config.axis_y2_padding)) {\r\n padding_top = $$.axis.getPadding(config.axis_y2_padding, 'top', padding_top, domainLength);\r\n padding_bottom = $$.axis.getPadding(config.axis_y2_padding, 'bottom', padding_bottom, domainLength);\r\n }\r\n // Bar/Area chart should be 0-based if all positive|negative\r\n if (isZeroBased) {\r\n if (isAllPositive) {\r\n padding_bottom = yDomainMin;\r\n }\r\n if (isAllNegative) {\r\n padding_top = -yDomainMax;\r\n }\r\n }\r\n domain = [yDomainMin - padding_bottom, yDomainMax + padding_top];\r\n return isInverted ? domain.reverse() : domain;\r\n };\r\n ChartInternal.prototype.getXDomainMin = function (targets) {\r\n var $$ = this, config = $$.config;\r\n return isDefined(config.axis_x_min)\r\n ? $$.isTimeSeries()\r\n ? this.parseDate(config.axis_x_min)\r\n : config.axis_x_min\r\n : $$.d3.min(targets, function (t) {\r\n return $$.d3.min(t.values, function (v) {\r\n return v.x;\r\n });\r\n });\r\n };\r\n ChartInternal.prototype.getXDomainMax = function (targets) {\r\n var $$ = this, config = $$.config;\r\n return isDefined(config.axis_x_max)\r\n ? $$.isTimeSeries()\r\n ? this.parseDate(config.axis_x_max)\r\n : config.axis_x_max\r\n : $$.d3.max(targets, function (t) {\r\n return $$.d3.max(t.values, function (v) {\r\n return v.x;\r\n });\r\n });\r\n };\r\n ChartInternal.prototype.getXDomainPadding = function (domain) {\r\n var $$ = this, config = $$.config, diff = domain[1] - domain[0], maxDataCount, padding, paddingLeft, paddingRight;\r\n if ($$.isCategorized()) {\r\n padding = 0;\r\n }\r\n else if ($$.hasType('bar')) {\r\n maxDataCount = $$.getMaxDataCount();\r\n padding = maxDataCount > 1 ? diff / (maxDataCount - 1) / 2 : 0.5;\r\n }\r\n else {\r\n padding = diff * 0.01;\r\n }\r\n if (typeof config.axis_x_padding === 'object' &&\r\n notEmpty(config.axis_x_padding)) {\r\n paddingLeft = isValue(config.axis_x_padding.left)\r\n ? config.axis_x_padding.left\r\n : padding;\r\n paddingRight = isValue(config.axis_x_padding.right)\r\n ? config.axis_x_padding.right\r\n : padding;\r\n }\r\n else if (typeof config.axis_x_padding === 'number') {\r\n paddingLeft = paddingRight = config.axis_x_padding;\r\n }\r\n else {\r\n paddingLeft = paddingRight = padding;\r\n }\r\n return { left: paddingLeft, right: paddingRight };\r\n };\r\n ChartInternal.prototype.getXDomain = function (targets) {\r\n var $$ = this, xDomain = [$$.getXDomainMin(targets), $$.getXDomainMax(targets)], firstX = xDomain[0], lastX = xDomain[1], padding = $$.getXDomainPadding(xDomain), min = 0, max = 0;\r\n // show center of x domain if min and max are the same\r\n if (firstX - lastX === 0 && !$$.isCategorized()) {\r\n if ($$.isTimeSeries()) {\r\n firstX = new Date(firstX.getTime() * 0.5);\r\n lastX = new Date(lastX.getTime() * 1.5);\r\n }\r\n else {\r\n firstX = firstX === 0 ? 1 : firstX * 0.5;\r\n lastX = lastX === 0 ? -1 : lastX * 1.5;\r\n }\r\n }\r\n if (firstX || firstX === 0) {\r\n min = $$.isTimeSeries()\r\n ? new Date(firstX.getTime() - padding.left)\r\n : firstX - padding.left;\r\n }\r\n if (lastX || lastX === 0) {\r\n max = $$.isTimeSeries()\r\n ? new Date(lastX.getTime() + padding.right)\r\n : lastX + padding.right;\r\n }\r\n return [min, max];\r\n };\r\n ChartInternal.prototype.updateXDomain = function (targets, withUpdateXDomain, withUpdateOrgXDomain, withTrim, domain) {\r\n var $$ = this, config = $$.config;\r\n if (withUpdateOrgXDomain) {\r\n $$.x.domain(domain ? domain : $$.d3.extent($$.getXDomain(targets)));\r\n $$.orgXDomain = $$.x.domain();\r\n if (config.zoom_enabled) {\r\n $$.zoom.update();\r\n }\r\n $$.subX.domain($$.x.domain());\r\n if ($$.brush) {\r\n $$.brush.updateScale($$.subX);\r\n }\r\n }\r\n if (withUpdateXDomain) {\r\n $$.x.domain(domain\r\n ? domain\r\n : !$$.brush || $$.brush.empty()\r\n ? $$.orgXDomain\r\n : $$.brush.selectionAsValue());\r\n }\r\n // Trim domain when too big by zoom mousemove event\r\n if (withTrim) {\r\n $$.x.domain($$.trimXDomain($$.x.orgDomain()));\r\n }\r\n return $$.x.domain();\r\n };\r\n ChartInternal.prototype.trimXDomain = function (domain) {\r\n var zoomDomain = this.getZoomDomain(), min = zoomDomain[0], max = zoomDomain[1];\r\n if (domain[0] <= min) {\r\n domain[1] = +domain[1] + (min - domain[0]);\r\n domain[0] = min;\r\n }\r\n if (max <= domain[1]) {\r\n domain[0] = +domain[0] - (domain[1] - max);\r\n domain[1] = max;\r\n }\r\n return domain;\r\n };\n\n ChartInternal.prototype.drag = function (mouse) {\r\n var $$ = this, config = $$.config, main = $$.main, d3 = $$.d3;\r\n var sx, sy, mx, my, minX, maxX, minY, maxY;\r\n if ($$.hasArcType()) {\r\n return;\r\n }\r\n if (!config.data_selection_enabled) {\r\n return;\r\n } // do nothing if not selectable\r\n if (!config.data_selection_multiple) {\r\n return;\r\n } // skip when single selection because drag is used for multiple selection\r\n sx = $$.dragStart[0];\r\n sy = $$.dragStart[1];\r\n mx = mouse[0];\r\n my = mouse[1];\r\n minX = Math.min(sx, mx);\r\n maxX = Math.max(sx, mx);\r\n minY = config.data_selection_grouped ? $$.margin.top : Math.min(sy, my);\r\n maxY = config.data_selection_grouped ? $$.height : Math.max(sy, my);\r\n main\r\n .select('.' + CLASS.dragarea)\r\n .attr('x', minX)\r\n .attr('y', minY)\r\n .attr('width', maxX - minX)\r\n .attr('height', maxY - minY);\r\n // TODO: binary search when multiple xs\r\n main\r\n .selectAll('.' + CLASS.shapes)\r\n .selectAll('.' + CLASS.shape)\r\n .each(function (d, i) {\r\n if (!config.data_selection_isselectable(d)) {\r\n return;\r\n }\r\n var shape = d3.select(this), isSelected = shape.classed(CLASS.SELECTED), isIncluded = shape.classed(CLASS.INCLUDED), _x, _y, _w, _h, toggle, isWithin = false, box;\r\n if (shape.classed(CLASS.circle)) {\r\n _x = shape.attr('cx') * 1;\r\n _y = shape.attr('cy') * 1;\r\n toggle = $$.togglePoint;\r\n isWithin = minX < _x && _x < maxX && minY < _y && _y < maxY;\r\n }\r\n else if (shape.classed(CLASS.bar)) {\r\n box = getPathBox(this);\r\n _x = box.x;\r\n _y = box.y;\r\n _w = box.width;\r\n _h = box.height;\r\n toggle = $$.togglePath;\r\n isWithin =\r\n !(maxX < _x || _x + _w < minX) && !(maxY < _y || _y + _h < minY);\r\n }\r\n else {\r\n // line/area selection not supported yet\r\n return;\r\n }\r\n if (isWithin ^ isIncluded) {\r\n shape.classed(CLASS.INCLUDED, !isIncluded);\r\n // TODO: included/unincluded callback here\r\n shape.classed(CLASS.SELECTED, !isSelected);\r\n toggle.call($$, !isSelected, shape, d, i);\r\n }\r\n });\r\n };\r\n ChartInternal.prototype.dragstart = function (mouse) {\r\n var $$ = this, config = $$.config;\r\n if ($$.hasArcType()) {\r\n return;\r\n }\r\n if (!config.data_selection_enabled) {\r\n return;\r\n } // do nothing if not selectable\r\n $$.dragStart = mouse;\r\n $$.main\r\n .select('.' + CLASS.chart)\r\n .append('rect')\r\n .attr('class', CLASS.dragarea)\r\n .style('opacity', 0.1);\r\n $$.dragging = true;\r\n };\r\n ChartInternal.prototype.dragend = function () {\r\n var $$ = this, config = $$.config;\r\n if ($$.hasArcType()) {\r\n return;\r\n }\r\n if (!config.data_selection_enabled) {\r\n return;\r\n } // do nothing if not selectable\r\n $$.main\r\n .select('.' + CLASS.dragarea)\r\n .transition()\r\n .duration(100)\r\n .style('opacity', 0)\r\n .remove();\r\n $$.main.selectAll('.' + CLASS.shape).classed(CLASS.INCLUDED, false);\r\n $$.dragging = false;\r\n };\n\n ChartInternal.prototype.getYFormat = function (forArc) {\r\n var $$ = this, formatForY = forArc && !$$.hasType('gauge') ? $$.defaultArcValueFormat : $$.yFormat, formatForY2 = forArc && !$$.hasType('gauge') ? $$.defaultArcValueFormat : $$.y2Format;\r\n return function (v, ratio, id) {\r\n var format = $$.axis.getId(id) === 'y2' ? formatForY2 : formatForY;\r\n return format.call($$, v, ratio);\r\n };\r\n };\r\n ChartInternal.prototype.yFormat = function (v) {\r\n var $$ = this, config = $$.config, format = config.axis_y_tick_format\r\n ? config.axis_y_tick_format\r\n : $$.defaultValueFormat;\r\n return format(v);\r\n };\r\n ChartInternal.prototype.y2Format = function (v) {\r\n var $$ = this, config = $$.config, format = config.axis_y2_tick_format\r\n ? config.axis_y2_tick_format\r\n : $$.defaultValueFormat;\r\n return format(v);\r\n };\r\n ChartInternal.prototype.defaultValueFormat = function (v) {\r\n return isValue(v) ? +v : '';\r\n };\r\n ChartInternal.prototype.defaultArcValueFormat = function (v, ratio) {\r\n return (ratio * 100).toFixed(1) + '%';\r\n };\r\n ChartInternal.prototype.dataLabelFormat = function (targetId) {\r\n var $$ = this, data_labels = $$.config.data_labels, format, defaultFormat = function (v) {\r\n return isValue(v) ? +v : '';\r\n };\r\n // find format according to axis id\r\n if (typeof data_labels.format === 'function') {\r\n format = data_labels.format;\r\n }\r\n else if (typeof data_labels.format === 'object') {\r\n if (data_labels.format[targetId]) {\r\n format =\r\n data_labels.format[targetId] === true\r\n ? defaultFormat\r\n : data_labels.format[targetId];\r\n }\r\n else {\r\n format = function () {\r\n return '';\r\n };\r\n }\r\n }\r\n else {\r\n format = defaultFormat;\r\n }\r\n return format;\r\n };\n\n ChartInternal.prototype.initGrid = function () {\r\n var $$ = this, config = $$.config, d3 = $$.d3;\r\n $$.grid = $$.main\r\n .append('g')\r\n .attr('clip-path', $$.clipPathForGrid)\r\n .attr('class', CLASS.grid);\r\n if (config.grid_x_show) {\r\n $$.grid.append('g').attr('class', CLASS.xgrids);\r\n }\r\n if (config.grid_y_show) {\r\n $$.grid.append('g').attr('class', CLASS.ygrids);\r\n }\r\n if (config.grid_focus_show) {\r\n $$.grid\r\n .append('g')\r\n .attr('class', CLASS.xgridFocus)\r\n .append('line')\r\n .attr('class', CLASS.xgridFocus);\r\n }\r\n $$.xgrid = d3.selectAll([]);\r\n if (!config.grid_lines_front) {\r\n $$.initGridLines();\r\n }\r\n };\r\n ChartInternal.prototype.initGridLines = function () {\r\n var $$ = this, d3 = $$.d3;\r\n $$.gridLines = $$.main\r\n .append('g')\r\n .attr('clip-path', $$.clipPathForGrid)\r\n .attr('class', CLASS.grid + ' ' + CLASS.gridLines);\r\n $$.gridLines.append('g').attr('class', CLASS.xgridLines);\r\n $$.gridLines.append('g').attr('class', CLASS.ygridLines);\r\n $$.xgridLines = d3.selectAll([]);\r\n };\r\n ChartInternal.prototype.updateXGrid = function (withoutUpdate) {\r\n var $$ = this, config = $$.config, d3 = $$.d3, xgridData = $$.generateGridData(config.grid_x_type, $$.x), tickOffset = $$.isCategorized() ? $$.xAxis.tickOffset() : 0;\r\n $$.xgridAttr = config.axis_rotated\r\n ? {\r\n x1: 0,\r\n x2: $$.width,\r\n y1: function (d) {\r\n return $$.x(d) - tickOffset;\r\n },\r\n y2: function (d) {\r\n return $$.x(d) - tickOffset;\r\n }\r\n }\r\n : {\r\n x1: function (d) {\r\n return $$.x(d) + tickOffset;\r\n },\r\n x2: function (d) {\r\n return $$.x(d) + tickOffset;\r\n },\r\n y1: 0,\r\n y2: $$.height\r\n };\r\n $$.xgridAttr.opacity = function () {\r\n var pos = +d3.select(this).attr(config.axis_rotated ? 'y1' : 'x1');\r\n return pos === (config.axis_rotated ? $$.height : 0) ? 0 : 1;\r\n };\r\n var xgrid = $$.main\r\n .select('.' + CLASS.xgrids)\r\n .selectAll('.' + CLASS.xgrid)\r\n .data(xgridData);\r\n var xgridEnter = xgrid\r\n .enter()\r\n .append('line')\r\n .attr('class', CLASS.xgrid)\r\n .attr('x1', $$.xgridAttr.x1)\r\n .attr('x2', $$.xgridAttr.x2)\r\n .attr('y1', $$.xgridAttr.y1)\r\n .attr('y2', $$.xgridAttr.y2)\r\n .style('opacity', 0);\r\n $$.xgrid = xgridEnter.merge(xgrid);\r\n if (!withoutUpdate) {\r\n $$.xgrid\r\n .attr('x1', $$.xgridAttr.x1)\r\n .attr('x2', $$.xgridAttr.x2)\r\n .attr('y1', $$.xgridAttr.y1)\r\n .attr('y2', $$.xgridAttr.y2)\r\n .style('opacity', $$.xgridAttr.opacity);\r\n }\r\n xgrid.exit().remove();\r\n };\r\n ChartInternal.prototype.updateYGrid = function () {\r\n var $$ = this, config = $$.config, gridValues = $$.yAxis.tickValues() || $$.y.ticks(config.grid_y_ticks);\r\n var ygrid = $$.main\r\n .select('.' + CLASS.ygrids)\r\n .selectAll('.' + CLASS.ygrid)\r\n .data(gridValues);\r\n var ygridEnter = ygrid\r\n .enter()\r\n .append('line')\r\n // TODO: x1, x2, y1, y2, opacity need to be set here maybe\r\n .attr('class', CLASS.ygrid);\r\n $$.ygrid = ygridEnter.merge(ygrid);\r\n $$.ygrid\r\n .attr('x1', config.axis_rotated ? $$.y : 0)\r\n .attr('x2', config.axis_rotated ? $$.y : $$.width)\r\n .attr('y1', config.axis_rotated ? 0 : $$.y)\r\n .attr('y2', config.axis_rotated ? $$.height : $$.y);\r\n ygrid.exit().remove();\r\n $$.smoothLines($$.ygrid, 'grid');\r\n };\r\n ChartInternal.prototype.gridTextAnchor = function (d) {\r\n return d.position ? d.position : 'end';\r\n };\r\n ChartInternal.prototype.gridTextDx = function (d) {\r\n return d.position === 'start' ? 4 : d.position === 'middle' ? 0 : -4;\r\n };\r\n ChartInternal.prototype.xGridTextX = function (d) {\r\n return d.position === 'start'\r\n ? -this.height\r\n : d.position === 'middle'\r\n ? -this.height / 2\r\n : 0;\r\n };\r\n ChartInternal.prototype.yGridTextX = function (d) {\r\n return d.position === 'start'\r\n ? 0\r\n : d.position === 'middle'\r\n ? this.width / 2\r\n : this.width;\r\n };\r\n ChartInternal.prototype.updateGrid = function (duration) {\r\n var $$ = this, main = $$.main, config = $$.config, xgridLine, xgridLineEnter, ygridLine, ygridLineEnter, xv = $$.xv.bind($$), yv = $$.yv.bind($$), xGridTextX = $$.xGridTextX.bind($$), yGridTextX = $$.yGridTextX.bind($$);\r\n // hide if arc type\r\n $$.grid.style('visibility', $$.hasArcType() ? 'hidden' : 'visible');\r\n main.select('line.' + CLASS.xgridFocus).style('visibility', 'hidden');\r\n if (config.grid_x_show) {\r\n $$.updateXGrid();\r\n }\r\n xgridLine = main\r\n .select('.' + CLASS.xgridLines)\r\n .selectAll('.' + CLASS.xgridLine)\r\n .data(config.grid_x_lines);\r\n // enter\r\n xgridLineEnter = xgridLine\r\n .enter()\r\n .append('g')\r\n .attr('class', function (d) {\r\n return CLASS.xgridLine + (d['class'] ? ' ' + d['class'] : '');\r\n });\r\n xgridLineEnter\r\n .append('line')\r\n .attr('x1', config.axis_rotated ? 0 : xv)\r\n .attr('x2', config.axis_rotated ? $$.width : xv)\r\n .attr('y1', config.axis_rotated ? xv : 0)\r\n .attr('y2', config.axis_rotated ? xv : $$.height)\r\n .style('opacity', 0);\r\n xgridLineEnter\r\n .append('text')\r\n .attr('text-anchor', $$.gridTextAnchor)\r\n .attr('transform', config.axis_rotated ? '' : 'rotate(-90)')\r\n .attr('x', config.axis_rotated ? yGridTextX : xGridTextX)\r\n .attr('y', xv)\r\n .attr('dx', $$.gridTextDx)\r\n .attr('dy', -5)\r\n .style('opacity', 0);\r\n // udpate\r\n $$.xgridLines = xgridLineEnter.merge(xgridLine);\r\n // done in d3.transition() of the end of this function\r\n // exit\r\n xgridLine\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n // Y-Grid\r\n if (config.grid_y_show) {\r\n $$.updateYGrid();\r\n }\r\n ygridLine = main\r\n .select('.' + CLASS.ygridLines)\r\n .selectAll('.' + CLASS.ygridLine)\r\n .data(config.grid_y_lines);\r\n // enter\r\n ygridLineEnter = ygridLine\r\n .enter()\r\n .append('g')\r\n .attr('class', function (d) {\r\n return CLASS.ygridLine + (d['class'] ? ' ' + d['class'] : '');\r\n });\r\n ygridLineEnter\r\n .append('line')\r\n .attr('x1', config.axis_rotated ? yv : 0)\r\n .attr('x2', config.axis_rotated ? yv : $$.width)\r\n .attr('y1', config.axis_rotated ? 0 : yv)\r\n .attr('y2', config.axis_rotated ? $$.height : yv)\r\n .style('opacity', 0);\r\n ygridLineEnter\r\n .append('text')\r\n .attr('text-anchor', $$.gridTextAnchor)\r\n .attr('transform', config.axis_rotated ? 'rotate(-90)' : '')\r\n .attr('x', config.axis_rotated ? xGridTextX : yGridTextX)\r\n .attr('y', yv)\r\n .attr('dx', $$.gridTextDx)\r\n .attr('dy', -5)\r\n .style('opacity', 0);\r\n // update\r\n $$.ygridLines = ygridLineEnter.merge(ygridLine);\r\n $$.ygridLines\r\n .select('line')\r\n .transition()\r\n .duration(duration)\r\n .attr('x1', config.axis_rotated ? yv : 0)\r\n .attr('x2', config.axis_rotated ? yv : $$.width)\r\n .attr('y1', config.axis_rotated ? 0 : yv)\r\n .attr('y2', config.axis_rotated ? $$.height : yv)\r\n .style('opacity', 1);\r\n $$.ygridLines\r\n .select('text')\r\n .transition()\r\n .duration(duration)\r\n .attr('x', config.axis_rotated ? $$.xGridTextX.bind($$) : $$.yGridTextX.bind($$))\r\n .attr('y', yv)\r\n .text(function (d) {\r\n return d.text;\r\n })\r\n .style('opacity', 1);\r\n // exit\r\n ygridLine\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n };\r\n ChartInternal.prototype.redrawGrid = function (withTransition, transition) {\r\n var $$ = this, config = $$.config, xv = $$.xv.bind($$), lines = $$.xgridLines.select('line'), texts = $$.xgridLines.select('text');\r\n return [\r\n (withTransition ? lines.transition(transition) : lines)\r\n .attr('x1', config.axis_rotated ? 0 : xv)\r\n .attr('x2', config.axis_rotated ? $$.width : xv)\r\n .attr('y1', config.axis_rotated ? xv : 0)\r\n .attr('y2', config.axis_rotated ? xv : $$.height)\r\n .style('opacity', 1),\r\n (withTransition ? texts.transition(transition) : texts)\r\n .attr('x', config.axis_rotated ? $$.yGridTextX.bind($$) : $$.xGridTextX.bind($$))\r\n .attr('y', xv)\r\n .text(function (d) {\r\n return d.text;\r\n })\r\n .style('opacity', 1)\r\n ];\r\n };\r\n ChartInternal.prototype.showXGridFocus = function (selectedData) {\r\n var $$ = this, config = $$.config, dataToShow = selectedData.filter(function (d) {\r\n return d && isValue(d.value);\r\n }), focusEl = $$.main.selectAll('line.' + CLASS.xgridFocus), xx = $$.xx.bind($$);\r\n if (!config.tooltip_show) {\r\n return;\r\n }\r\n // Hide when stanford plot exists\r\n if ($$.hasType('stanford') || $$.hasArcType()) {\r\n return;\r\n }\r\n focusEl\r\n .style('visibility', 'visible')\r\n .data([dataToShow[0]])\r\n .attr(config.axis_rotated ? 'y1' : 'x1', xx)\r\n .attr(config.axis_rotated ? 'y2' : 'x2', xx);\r\n $$.smoothLines(focusEl, 'grid');\r\n };\r\n ChartInternal.prototype.hideXGridFocus = function () {\r\n this.main.select('line.' + CLASS.xgridFocus).style('visibility', 'hidden');\r\n };\r\n ChartInternal.prototype.updateXgridFocus = function () {\r\n var $$ = this, config = $$.config;\r\n $$.main\r\n .select('line.' + CLASS.xgridFocus)\r\n .attr('x1', config.axis_rotated ? 0 : -10)\r\n .attr('x2', config.axis_rotated ? $$.width : -10)\r\n .attr('y1', config.axis_rotated ? -10 : 0)\r\n .attr('y2', config.axis_rotated ? -10 : $$.height);\r\n };\r\n ChartInternal.prototype.generateGridData = function (type, scale) {\r\n var $$ = this, gridData = [], xDomain, firstYear, lastYear, i, tickNum = $$.main\r\n .select('.' + CLASS.axisX)\r\n .selectAll('.tick')\r\n .size();\r\n if (type === 'year') {\r\n xDomain = $$.getXDomain();\r\n firstYear = xDomain[0].getFullYear();\r\n lastYear = xDomain[1].getFullYear();\r\n for (i = firstYear; i <= lastYear; i++) {\r\n gridData.push(new Date(i + '-01-01 00:00:00'));\r\n }\r\n }\r\n else {\r\n gridData = scale.ticks(10);\r\n if (gridData.length > tickNum) {\r\n // use only int\r\n gridData = gridData.filter(function (d) {\r\n return ('' + d).indexOf('.') < 0;\r\n });\r\n }\r\n }\r\n return gridData;\r\n };\r\n ChartInternal.prototype.getGridFilterToRemove = function (params) {\r\n return params\r\n ? function (line) {\r\n var found = false;\r\n [].concat(params).forEach(function (param) {\r\n if (('value' in param && line.value === param.value) ||\r\n ('class' in param && line['class'] === param['class'])) {\r\n found = true;\r\n }\r\n });\r\n return found;\r\n }\r\n : function () {\r\n return true;\r\n };\r\n };\r\n ChartInternal.prototype.removeGridLines = function (params, forX) {\r\n var $$ = this, config = $$.config, toRemove = $$.getGridFilterToRemove(params), toShow = function (line) {\r\n return !toRemove(line);\r\n }, classLines = forX ? CLASS.xgridLines : CLASS.ygridLines, classLine = forX ? CLASS.xgridLine : CLASS.ygridLine;\r\n $$.main\r\n .select('.' + classLines)\r\n .selectAll('.' + classLine)\r\n .filter(toRemove)\r\n .transition()\r\n .duration(config.transition_duration)\r\n .style('opacity', 0)\r\n .remove();\r\n if (forX) {\r\n config.grid_x_lines = config.grid_x_lines.filter(toShow);\r\n }\r\n else {\r\n config.grid_y_lines = config.grid_y_lines.filter(toShow);\r\n }\r\n };\n\n ChartInternal.prototype.initEventRect = function () {\r\n var $$ = this, config = $$.config;\r\n $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.eventRects)\r\n .style('fill-opacity', 0);\r\n $$.eventRect = $$.main\r\n .select('.' + CLASS.eventRects)\r\n .append('rect')\r\n .attr('class', CLASS.eventRect);\r\n // event rect handle zoom event as well\r\n if (config.zoom_enabled && $$.zoom) {\r\n $$.eventRect.call($$.zoom).on('dblclick.zoom', null);\r\n if (config.zoom_initialRange) {\r\n // WORKAROUND: Add transition to apply transform immediately when no subchart\r\n $$.eventRect\r\n .transition()\r\n .duration(0)\r\n .call($$.zoom.transform, $$.zoomTransform(config.zoom_initialRange));\r\n }\r\n }\r\n };\r\n ChartInternal.prototype.redrawEventRect = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config;\r\n function mouseout() {\r\n $$.svg.select('.' + CLASS.eventRect).style('cursor', null);\r\n $$.hideXGridFocus();\r\n $$.hideTooltip();\r\n $$.unexpandCircles();\r\n $$.unexpandBars();\r\n }\r\n var isHoveringDataPoint = function (mouse, closest) {\r\n return closest &&\r\n ($$.isBarType(closest.id) ||\r\n $$.dist(closest, mouse) < config.point_sensitivity);\r\n };\r\n var withName = function (d) { return (d ? $$.addName(Object.assign({}, d)) : null); };\r\n // rects for mouseover\r\n $$.main\r\n .select('.' + CLASS.eventRects)\r\n .style('cursor', config.zoom_enabled\r\n ? config.axis_rotated\r\n ? 'ns-resize'\r\n : 'ew-resize'\r\n : null);\r\n $$.eventRect\r\n .attr('x', 0)\r\n .attr('y', 0)\r\n .attr('width', $$.width)\r\n .attr('height', $$.height)\r\n .on('mouseout', config.interaction_enabled\r\n ? function () {\r\n if (!config) {\r\n return;\r\n } // chart is destroyed\r\n if ($$.hasArcType()) {\r\n return;\r\n }\r\n if ($$.mouseover) {\r\n config.data_onmouseout.call($$.api, $$.mouseover);\r\n $$.mouseover = undefined;\r\n }\r\n mouseout();\r\n }\r\n : null)\r\n .on('mousemove', config.interaction_enabled\r\n ? function () {\r\n // do nothing when dragging\r\n if ($$.dragging) {\r\n return;\r\n }\r\n var targetsToShow = $$.getTargetsToShow();\r\n // do nothing if arc type\r\n if ($$.hasArcType(targetsToShow)) {\r\n return;\r\n }\r\n var mouse = d3.mouse(this);\r\n var closest = withName($$.findClosestFromTargets(targetsToShow, mouse));\r\n var isMouseCloseToDataPoint = isHoveringDataPoint(mouse, closest);\r\n // ensure onmouseout is always called if mousemove switch between 2 targets\r\n if ($$.mouseover &&\r\n (!closest ||\r\n closest.id !== $$.mouseover.id ||\r\n closest.index !== $$.mouseover.index)) {\r\n config.data_onmouseout.call($$.api, $$.mouseover);\r\n $$.mouseover = undefined;\r\n }\r\n if (closest && !$$.mouseover) {\r\n config.data_onmouseover.call($$.api, closest);\r\n $$.mouseover = closest;\r\n }\r\n // show cursor as pointer if we're hovering a data point close enough\r\n $$.svg\r\n .select('.' + CLASS.eventRect)\r\n .style('cursor', isMouseCloseToDataPoint ? 'pointer' : null);\r\n // if tooltip not grouped, we want to display only data from closest data point\r\n var showSingleDataPoint = !config.tooltip_grouped || $$.hasType('stanford', targetsToShow);\r\n // find data to highlight\r\n var selectedData;\r\n if (showSingleDataPoint) {\r\n if (closest) {\r\n selectedData = [closest];\r\n }\r\n }\r\n else {\r\n var closestByX = void 0;\r\n if (closest) {\r\n // reuse closest value\r\n closestByX = closest;\r\n }\r\n else {\r\n // try to find the closest value by X values from the mouse position\r\n var mouseX = config.axis_rotated ? mouse[1] : mouse[0];\r\n closestByX = $$.findClosestFromTargetsByX(targetsToShow, $$.x.invert(mouseX));\r\n }\r\n // highlight all data for this 'x' value\r\n if (closestByX) {\r\n selectedData = $$.filterByX(targetsToShow, closestByX.x);\r\n }\r\n }\r\n // ensure we have data to show\r\n if (!selectedData || selectedData.length === 0) {\r\n return mouseout();\r\n }\r\n // inject names for each point\r\n selectedData = selectedData.map(withName);\r\n // show tooltip\r\n $$.showTooltip(selectedData, this);\r\n // expand points\r\n if (config.point_focus_expand_enabled) {\r\n $$.unexpandCircles();\r\n selectedData.forEach(function (d) {\r\n $$.expandCircles(d.index, d.id, false);\r\n });\r\n }\r\n // expand bars\r\n $$.unexpandBars();\r\n selectedData.forEach(function (d) {\r\n $$.expandBars(d.index, d.id, false);\r\n });\r\n // Show xgrid focus line\r\n $$.showXGridFocus(selectedData);\r\n }\r\n : null)\r\n .on('click', config.interaction_enabled\r\n ? function () {\r\n var targetsToShow = $$.getTargetsToShow();\r\n if ($$.hasArcType(targetsToShow)) {\r\n return;\r\n }\r\n var mouse = d3.mouse(this);\r\n var closest = withName($$.findClosestFromTargets(targetsToShow, mouse));\r\n if (!isHoveringDataPoint(mouse, closest)) {\r\n return;\r\n }\r\n // select if selection enabled\r\n var sameXData;\r\n if (!config.data_selection_grouped || $$.isStanfordType(closest)) {\r\n sameXData = [closest];\r\n }\r\n else {\r\n sameXData = $$.filterByX(targetsToShow, closest.x);\r\n }\r\n // toggle selected state\r\n sameXData.forEach(function (d) {\r\n $$.main\r\n .selectAll('.' + CLASS.shapes + $$.getTargetSelectorSuffix(d.id))\r\n .selectAll('.' + CLASS.shape + '-' + d.index)\r\n .each(function () {\r\n if (config.data_selection_grouped ||\r\n $$.isWithinShape(this, d)) {\r\n $$.toggleShape(this, d, d.index);\r\n }\r\n });\r\n });\r\n // call data_onclick on the closest data point\r\n if (closest) {\r\n var shape = $$.main\r\n .selectAll('.' + CLASS.shapes + $$.getTargetSelectorSuffix(closest.id))\r\n .select('.' + CLASS.shape + '-' + closest.index);\r\n config.data_onclick.call($$.api, closest, shape.node());\r\n }\r\n }\r\n : null)\r\n .call(config.interaction_enabled && config.data_selection_draggable && $$.drag\r\n ? d3\r\n .drag()\r\n .on('drag', function () {\r\n $$.drag(d3.mouse(this));\r\n })\r\n .on('start', function () {\r\n $$.dragstart(d3.mouse(this));\r\n })\r\n .on('end', function () {\r\n $$.dragend();\r\n })\r\n : function () { });\r\n };\r\n ChartInternal.prototype.getMousePosition = function (data) {\r\n var $$ = this;\r\n return [$$.x(data.x), $$.getYScale(data.id)(data.value)];\r\n };\r\n ChartInternal.prototype.dispatchEvent = function (type, mouse) {\r\n var $$ = this, selector = '.' + CLASS.eventRect, eventRect = $$.main.select(selector).node(), box = eventRect.getBoundingClientRect(), x = box.left + (mouse ? mouse[0] : 0), y = box.top + (mouse ? mouse[1] : 0), event = document.createEvent('MouseEvents');\r\n event.initMouseEvent(type, true, true, window, 0, x, y, x, y, false, false, false, false, 0, null);\r\n eventRect.dispatchEvent(event);\r\n };\n\n ChartInternal.prototype.initLegend = function () {\r\n var $$ = this;\r\n $$.legendItemTextBox = {};\r\n $$.legendHasRendered = false;\r\n $$.legend = $$.svg.append('g').attr('transform', $$.getTranslate('legend'));\r\n if (!$$.config.legend_show) {\r\n $$.legend.style('visibility', 'hidden');\r\n $$.hiddenLegendIds = $$.mapToIds($$.data.targets);\r\n return;\r\n }\r\n // MEMO: call here to update legend box and tranlate for all\r\n // MEMO: translate will be updated by this, so transform not needed in updateLegend()\r\n $$.updateLegendWithDefaults();\r\n };\r\n ChartInternal.prototype.updateLegendWithDefaults = function () {\r\n var $$ = this;\r\n $$.updateLegend($$.mapToIds($$.data.targets), {\r\n withTransform: false,\r\n withTransitionForTransform: false,\r\n withTransition: false\r\n });\r\n };\r\n ChartInternal.prototype.updateSizeForLegend = function (legendHeight, legendWidth) {\r\n var $$ = this, config = $$.config, insetLegendPosition = {\r\n top: $$.isLegendTop\r\n ? $$.getCurrentPaddingTop() + config.legend_inset_y + 5.5\r\n : $$.currentHeight -\r\n legendHeight -\r\n $$.getCurrentPaddingBottom() -\r\n config.legend_inset_y,\r\n left: $$.isLegendLeft\r\n ? $$.getCurrentPaddingLeft() + config.legend_inset_x + 0.5\r\n : $$.currentWidth -\r\n legendWidth -\r\n $$.getCurrentPaddingRight() -\r\n config.legend_inset_x +\r\n 0.5\r\n };\r\n $$.margin3 = {\r\n top: $$.isLegendRight\r\n ? 0\r\n : $$.isLegendInset\r\n ? insetLegendPosition.top\r\n : $$.currentHeight - legendHeight,\r\n right: NaN,\r\n bottom: 0,\r\n left: $$.isLegendRight\r\n ? $$.currentWidth - legendWidth\r\n : $$.isLegendInset\r\n ? insetLegendPosition.left\r\n : 0\r\n };\r\n };\r\n ChartInternal.prototype.transformLegend = function (withTransition) {\r\n var $$ = this;\r\n (withTransition ? $$.legend.transition() : $$.legend).attr('transform', $$.getTranslate('legend'));\r\n };\r\n ChartInternal.prototype.updateLegendStep = function (step) {\r\n this.legendStep = step;\r\n };\r\n ChartInternal.prototype.updateLegendItemWidth = function (w) {\r\n this.legendItemWidth = w;\r\n };\r\n ChartInternal.prototype.updateLegendItemHeight = function (h) {\r\n this.legendItemHeight = h;\r\n };\r\n ChartInternal.prototype.getLegendWidth = function () {\r\n var $$ = this;\r\n return $$.config.legend_show\r\n ? $$.isLegendRight || $$.isLegendInset\r\n ? $$.legendItemWidth * ($$.legendStep + 1)\r\n : $$.currentWidth\r\n : 0;\r\n };\r\n ChartInternal.prototype.getLegendHeight = function () {\r\n var $$ = this, h = 0;\r\n if ($$.config.legend_show) {\r\n if ($$.isLegendRight) {\r\n h = $$.currentHeight;\r\n }\r\n else {\r\n h = Math.max(20, $$.legendItemHeight) * ($$.legendStep + 1);\r\n }\r\n }\r\n return h;\r\n };\r\n ChartInternal.prototype.opacityForLegend = function (legendItem) {\r\n return legendItem.classed(CLASS.legendItemHidden) ? null : 1;\r\n };\r\n ChartInternal.prototype.opacityForUnfocusedLegend = function (legendItem) {\r\n return legendItem.classed(CLASS.legendItemHidden) ? null : 0.3;\r\n };\r\n ChartInternal.prototype.toggleFocusLegend = function (targetIds, focus) {\r\n var $$ = this;\r\n targetIds = $$.mapToTargetIds(targetIds);\r\n $$.legend\r\n .selectAll('.' + CLASS.legendItem)\r\n .filter(function (id) {\r\n return targetIds.indexOf(id) >= 0;\r\n })\r\n .classed(CLASS.legendItemFocused, focus)\r\n .transition()\r\n .duration(100)\r\n .style('opacity', function () {\r\n var opacity = focus ? $$.opacityForLegend : $$.opacityForUnfocusedLegend;\r\n return opacity.call($$, $$.d3.select(this));\r\n });\r\n };\r\n ChartInternal.prototype.revertLegend = function () {\r\n var $$ = this, d3 = $$.d3;\r\n $$.legend\r\n .selectAll('.' + CLASS.legendItem)\r\n .classed(CLASS.legendItemFocused, false)\r\n .transition()\r\n .duration(100)\r\n .style('opacity', function () {\r\n return $$.opacityForLegend(d3.select(this));\r\n });\r\n };\r\n ChartInternal.prototype.showLegend = function (targetIds) {\r\n var $$ = this, config = $$.config;\r\n if (!config.legend_show) {\r\n config.legend_show = true;\r\n $$.legend.style('visibility', 'visible');\r\n if (!$$.legendHasRendered) {\r\n $$.updateLegendWithDefaults();\r\n }\r\n }\r\n $$.removeHiddenLegendIds(targetIds);\r\n $$.legend\r\n .selectAll($$.selectorLegends(targetIds))\r\n .style('visibility', 'visible')\r\n .transition()\r\n .style('opacity', function () {\r\n return $$.opacityForLegend($$.d3.select(this));\r\n });\r\n };\r\n ChartInternal.prototype.hideLegend = function (targetIds) {\r\n var $$ = this, config = $$.config;\r\n if (config.legend_show && isEmpty(targetIds)) {\r\n config.legend_show = false;\r\n $$.legend.style('visibility', 'hidden');\r\n }\r\n $$.addHiddenLegendIds(targetIds);\r\n $$.legend\r\n .selectAll($$.selectorLegends(targetIds))\r\n .style('opacity', 0)\r\n .style('visibility', 'hidden');\r\n };\r\n ChartInternal.prototype.clearLegendItemTextBoxCache = function () {\r\n this.legendItemTextBox = {};\r\n };\r\n ChartInternal.prototype.updateLegend = function (targetIds, options, transitions) {\r\n var $$ = this, config = $$.config;\r\n var xForLegend, xForLegendText, xForLegendRect, yForLegend, yForLegendText, yForLegendRect, x1ForLegendTile, x2ForLegendTile, yForLegendTile;\r\n var paddingTop = 4, paddingRight = 10, maxWidth = 0, maxHeight = 0, posMin = 10, tileWidth = config.legend_item_tile_width + 5;\r\n var l, totalLength = 0, offsets = {}, widths = {}, heights = {}, margins = [0], steps = {}, step = 0;\r\n var withTransition, withTransitionForTransform;\r\n var texts, rects, tiles, background;\r\n // Skip elements when their name is set to null\r\n targetIds = targetIds.filter(function (id) {\r\n return !isDefined(config.data_names[id]) || config.data_names[id] !== null;\r\n });\r\n options = options || {};\r\n withTransition = getOption(options, 'withTransition', true);\r\n withTransitionForTransform = getOption(options, 'withTransitionForTransform', true);\r\n function getTextBox(textElement, id) {\r\n if (!$$.legendItemTextBox[id]) {\r\n $$.legendItemTextBox[id] = $$.getTextRect(textElement.textContent, CLASS.legendItem, textElement);\r\n }\r\n return $$.legendItemTextBox[id];\r\n }\r\n function updatePositions(textElement, id, index) {\r\n var reset = index === 0, isLast = index === targetIds.length - 1, box = getTextBox(textElement, id), itemWidth = box.width +\r\n tileWidth +\r\n (isLast && !($$.isLegendRight || $$.isLegendInset) ? 0 : paddingRight) +\r\n config.legend_padding, itemHeight = box.height + paddingTop, itemLength = $$.isLegendRight || $$.isLegendInset ? itemHeight : itemWidth, areaLength = $$.isLegendRight || $$.isLegendInset\r\n ? $$.getLegendHeight()\r\n : $$.getLegendWidth(), margin, maxLength;\r\n // MEMO: care about condifion of step, totalLength\r\n function updateValues(id, withoutStep) {\r\n if (!withoutStep) {\r\n margin = (areaLength - totalLength - itemLength) / 2;\r\n if (margin < posMin) {\r\n margin = (areaLength - itemLength) / 2;\r\n totalLength = 0;\r\n step++;\r\n }\r\n }\r\n steps[id] = step;\r\n margins[step] = $$.isLegendInset ? 10 : margin;\r\n offsets[id] = totalLength;\r\n totalLength += itemLength;\r\n }\r\n if (reset) {\r\n totalLength = 0;\r\n step = 0;\r\n maxWidth = 0;\r\n maxHeight = 0;\r\n }\r\n if (config.legend_show && !$$.isLegendToShow(id)) {\r\n widths[id] = heights[id] = steps[id] = offsets[id] = 0;\r\n return;\r\n }\r\n widths[id] = itemWidth;\r\n heights[id] = itemHeight;\r\n if (!maxWidth || itemWidth >= maxWidth) {\r\n maxWidth = itemWidth;\r\n }\r\n if (!maxHeight || itemHeight >= maxHeight) {\r\n maxHeight = itemHeight;\r\n }\r\n maxLength = $$.isLegendRight || $$.isLegendInset ? maxHeight : maxWidth;\r\n if (config.legend_equally) {\r\n Object.keys(widths).forEach(function (id) {\r\n widths[id] = maxWidth;\r\n });\r\n Object.keys(heights).forEach(function (id) {\r\n heights[id] = maxHeight;\r\n });\r\n margin = (areaLength - maxLength * targetIds.length) / 2;\r\n if (margin < posMin) {\r\n totalLength = 0;\r\n step = 0;\r\n targetIds.forEach(function (id) {\r\n updateValues(id);\r\n });\r\n }\r\n else {\r\n updateValues(id, true);\r\n }\r\n }\r\n else {\r\n updateValues(id);\r\n }\r\n }\r\n if ($$.isLegendInset) {\r\n step = config.legend_inset_step\r\n ? config.legend_inset_step\r\n : targetIds.length;\r\n $$.updateLegendStep(step);\r\n }\r\n if ($$.isLegendRight) {\r\n xForLegend = function (id) {\r\n return maxWidth * steps[id];\r\n };\r\n yForLegend = function (id) {\r\n return margins[steps[id]] + offsets[id];\r\n };\r\n }\r\n else if ($$.isLegendInset) {\r\n xForLegend = function (id) {\r\n return maxWidth * steps[id] + 10;\r\n };\r\n yForLegend = function (id) {\r\n return margins[steps[id]] + offsets[id];\r\n };\r\n }\r\n else {\r\n xForLegend = function (id) {\r\n return margins[steps[id]] + offsets[id];\r\n };\r\n yForLegend = function (id) {\r\n return maxHeight * steps[id];\r\n };\r\n }\r\n xForLegendText = function (id, i) {\r\n return xForLegend(id, i) + 4 + config.legend_item_tile_width;\r\n };\r\n yForLegendText = function (id, i) {\r\n return yForLegend(id, i) + 9;\r\n };\r\n xForLegendRect = function (id, i) {\r\n return xForLegend(id, i);\r\n };\r\n yForLegendRect = function (id, i) {\r\n return yForLegend(id, i) - 5;\r\n };\r\n x1ForLegendTile = function (id, i) {\r\n return xForLegend(id, i) - 2;\r\n };\r\n x2ForLegendTile = function (id, i) {\r\n return xForLegend(id, i) - 2 + config.legend_item_tile_width;\r\n };\r\n yForLegendTile = function (id, i) {\r\n return yForLegend(id, i) + 4;\r\n };\r\n // Define g for legend area\r\n l = $$.legend\r\n .selectAll('.' + CLASS.legendItem)\r\n .data(targetIds)\r\n .enter()\r\n .append('g')\r\n .attr('class', function (id) {\r\n return $$.generateClass(CLASS.legendItem, id);\r\n })\r\n .style('visibility', function (id) {\r\n return $$.isLegendToShow(id) ? 'visible' : 'hidden';\r\n })\r\n .style('cursor', function () {\r\n return config.interaction_enabled ? 'pointer' : 'auto';\r\n })\r\n .on('click', config.interaction_enabled\r\n ? function (id) {\r\n if (config.legend_item_onclick) {\r\n config.legend_item_onclick.call($$, id);\r\n }\r\n else {\r\n if ($$.d3.event.altKey) {\r\n $$.api.hide();\r\n $$.api.show(id);\r\n }\r\n else {\r\n $$.api.toggle(id);\r\n $$.isTargetToShow(id) ? $$.api.focus(id) : $$.api.revert();\r\n }\r\n }\r\n }\r\n : null)\r\n .on('mouseover', config.interaction_enabled\r\n ? function (id) {\r\n if (config.legend_item_onmouseover) {\r\n config.legend_item_onmouseover.call($$, id);\r\n }\r\n else {\r\n $$.d3.select(this).classed(CLASS.legendItemFocused, true);\r\n if (!$$.transiting && $$.isTargetToShow(id)) {\r\n $$.api.focus(id);\r\n }\r\n }\r\n }\r\n : null)\r\n .on('mouseout', config.interaction_enabled\r\n ? function (id) {\r\n if (config.legend_item_onmouseout) {\r\n config.legend_item_onmouseout.call($$, id);\r\n }\r\n else {\r\n $$.d3.select(this).classed(CLASS.legendItemFocused, false);\r\n $$.api.revert();\r\n }\r\n }\r\n : null);\r\n l.append('text')\r\n .text(function (id) {\r\n return isDefined(config.data_names[id]) ? config.data_names[id] : id;\r\n })\r\n .each(function (id, i) {\r\n updatePositions(this, id, i);\r\n })\r\n .style('pointer-events', 'none')\r\n .attr('x', $$.isLegendRight || $$.isLegendInset ? xForLegendText : -200)\r\n .attr('y', $$.isLegendRight || $$.isLegendInset ? -200 : yForLegendText);\r\n l.append('rect')\r\n .attr('class', CLASS.legendItemEvent)\r\n .style('fill-opacity', 0)\r\n .attr('x', $$.isLegendRight || $$.isLegendInset ? xForLegendRect : -200)\r\n .attr('y', $$.isLegendRight || $$.isLegendInset ? -200 : yForLegendRect);\r\n l.append('line')\r\n .attr('class', CLASS.legendItemTile)\r\n .style('stroke', $$.color)\r\n .style('pointer-events', 'none')\r\n .attr('x1', $$.isLegendRight || $$.isLegendInset ? x1ForLegendTile : -200)\r\n .attr('y1', $$.isLegendRight || $$.isLegendInset ? -200 : yForLegendTile)\r\n .attr('x2', $$.isLegendRight || $$.isLegendInset ? x2ForLegendTile : -200)\r\n .attr('y2', $$.isLegendRight || $$.isLegendInset ? -200 : yForLegendTile)\r\n .attr('stroke-width', config.legend_item_tile_height);\r\n // Set background for inset legend\r\n background = $$.legend.select('.' + CLASS.legendBackground + ' rect');\r\n if ($$.isLegendInset && maxWidth > 0 && background.size() === 0) {\r\n background = $$.legend\r\n .insert('g', '.' + CLASS.legendItem)\r\n .attr('class', CLASS.legendBackground)\r\n .append('rect');\r\n }\r\n texts = $$.legend\r\n .selectAll('text')\r\n .data(targetIds)\r\n .text(function (id) {\r\n return isDefined(config.data_names[id]) ? config.data_names[id] : id;\r\n }) // MEMO: needed for update\r\n .each(function (id, i) {\r\n updatePositions(this, id, i);\r\n });\r\n (withTransition ? texts.transition() : texts)\r\n .attr('x', xForLegendText)\r\n .attr('y', yForLegendText);\r\n rects = $$.legend.selectAll('rect.' + CLASS.legendItemEvent).data(targetIds);\r\n (withTransition ? rects.transition() : rects)\r\n .attr('width', function (id) {\r\n return widths[id];\r\n })\r\n .attr('height', function (id) {\r\n return heights[id];\r\n })\r\n .attr('x', xForLegendRect)\r\n .attr('y', yForLegendRect);\r\n tiles = $$.legend.selectAll('line.' + CLASS.legendItemTile).data(targetIds);\r\n (withTransition ? tiles.transition() : tiles)\r\n .style('stroke', $$.levelColor\r\n ? function (id) {\r\n return $$.levelColor($$.cache[id].values.reduce(function (total, item) {\r\n return total + item.value;\r\n }, 0));\r\n }\r\n : $$.color)\r\n .attr('x1', x1ForLegendTile)\r\n .attr('y1', yForLegendTile)\r\n .attr('x2', x2ForLegendTile)\r\n .attr('y2', yForLegendTile);\r\n if (background) {\r\n (withTransition ? background.transition() : background)\r\n .attr('height', $$.getLegendHeight() - 12)\r\n .attr('width', maxWidth * (step + 1) + 10);\r\n }\r\n // toggle legend state\r\n $$.legend\r\n .selectAll('.' + CLASS.legendItem)\r\n .classed(CLASS.legendItemHidden, function (id) {\r\n return !$$.isTargetToShow(id);\r\n });\r\n // Update all to reflect change of legend\r\n $$.updateLegendItemWidth(maxWidth);\r\n $$.updateLegendItemHeight(maxHeight);\r\n $$.updateLegendStep(step);\r\n // Update size and scale\r\n $$.updateSizes();\r\n $$.updateScales();\r\n $$.updateSvgSize();\r\n // Update g positions\r\n $$.transformAll(withTransitionForTransform, transitions);\r\n $$.legendHasRendered = true;\r\n };\n\n ChartInternal.prototype.initRegion = function () {\r\n var $$ = this;\r\n $$.region = $$.main\r\n .append('g')\r\n .attr('clip-path', $$.clipPath)\r\n .attr('class', CLASS.regions);\r\n };\r\n ChartInternal.prototype.updateRegion = function (duration) {\r\n var $$ = this, config = $$.config;\r\n // hide if arc type\r\n $$.region.style('visibility', $$.hasArcType() ? 'hidden' : 'visible');\r\n var mainRegion = $$.main\r\n .select('.' + CLASS.regions)\r\n .selectAll('.' + CLASS.region)\r\n .data(config.regions);\r\n var g = mainRegion.enter().append('g');\r\n g.append('rect')\r\n .attr('x', $$.regionX.bind($$))\r\n .attr('y', $$.regionY.bind($$))\r\n .attr('width', $$.regionWidth.bind($$))\r\n .attr('height', $$.regionHeight.bind($$))\r\n .style('fill-opacity', function (d) {\r\n return isValue(d.opacity) ? d.opacity : 0.1;\r\n });\r\n g.append('text').text($$.labelRegion.bind($$));\r\n $$.mainRegion = g.merge(mainRegion).attr('class', $$.classRegion.bind($$));\r\n mainRegion\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n };\r\n ChartInternal.prototype.redrawRegion = function (withTransition, transition) {\r\n var $$ = this, regions = $$.mainRegion, regionLabels = $$.mainRegion.selectAll('text');\r\n return [\r\n (withTransition ? regions.transition(transition) : regions)\r\n .attr('x', $$.regionX.bind($$))\r\n .attr('y', $$.regionY.bind($$))\r\n .attr('width', $$.regionWidth.bind($$))\r\n .attr('height', $$.regionHeight.bind($$))\r\n .style('fill-opacity', function (d) {\r\n return isValue(d.opacity) ? d.opacity : 0.1;\r\n }),\r\n (withTransition ? regionLabels.transition(transition) : regionLabels)\r\n .attr('x', $$.labelOffsetX.bind($$))\r\n .attr('y', $$.labelOffsetY.bind($$))\r\n .attr('transform', $$.labelTransform.bind($$))\r\n .attr('style', 'text-anchor: left;')\r\n ];\r\n };\r\n ChartInternal.prototype.regionX = function (d) {\r\n var $$ = this, config = $$.config, xPos, yScale = d.axis === 'y' ? $$.y : $$.y2;\r\n if (d.axis === 'y' || d.axis === 'y2') {\r\n xPos = config.axis_rotated ? ('start' in d ? yScale(d.start) : 0) : 0;\r\n }\r\n else {\r\n xPos = config.axis_rotated\r\n ? 0\r\n : 'start' in d\r\n ? $$.x($$.isTimeSeries() ? $$.parseDate(d.start) : d.start)\r\n : 0;\r\n }\r\n return xPos;\r\n };\r\n ChartInternal.prototype.regionY = function (d) {\r\n var $$ = this, config = $$.config, yPos, yScale = d.axis === 'y' ? $$.y : $$.y2;\r\n if (d.axis === 'y' || d.axis === 'y2') {\r\n yPos = config.axis_rotated ? 0 : 'end' in d ? yScale(d.end) : 0;\r\n }\r\n else {\r\n yPos = config.axis_rotated\r\n ? 'start' in d\r\n ? $$.x($$.isTimeSeries() ? $$.parseDate(d.start) : d.start)\r\n : 0\r\n : 0;\r\n }\r\n return yPos;\r\n };\r\n ChartInternal.prototype.regionWidth = function (d) {\r\n var $$ = this, config = $$.config, start = $$.regionX(d), end, yScale = d.axis === 'y' ? $$.y : $$.y2;\r\n if (d.axis === 'y' || d.axis === 'y2') {\r\n end = config.axis_rotated\r\n ? 'end' in d\r\n ? yScale(d.end)\r\n : $$.width\r\n : $$.width;\r\n }\r\n else {\r\n end = config.axis_rotated\r\n ? $$.width\r\n : 'end' in d\r\n ? $$.x($$.isTimeSeries() ? $$.parseDate(d.end) : d.end)\r\n : $$.width;\r\n }\r\n return end < start ? 0 : end - start;\r\n };\r\n ChartInternal.prototype.regionHeight = function (d) {\r\n var $$ = this, config = $$.config, start = this.regionY(d), end, yScale = d.axis === 'y' ? $$.y : $$.y2;\r\n if (d.axis === 'y' || d.axis === 'y2') {\r\n end = config.axis_rotated\r\n ? $$.height\r\n : 'start' in d\r\n ? yScale(d.start)\r\n : $$.height;\r\n }\r\n else {\r\n end = config.axis_rotated\r\n ? 'end' in d\r\n ? $$.x($$.isTimeSeries() ? $$.parseDate(d.end) : d.end)\r\n : $$.height\r\n : $$.height;\r\n }\r\n return end < start ? 0 : end - start;\r\n };\r\n ChartInternal.prototype.isRegionOnX = function (d) {\r\n return !d.axis || d.axis === 'x';\r\n };\r\n ChartInternal.prototype.labelRegion = function (d) {\r\n return 'label' in d ? d.label : '';\r\n };\r\n ChartInternal.prototype.labelTransform = function (d) {\r\n return 'vertical' in d && d.vertical ? 'rotate(90)' : '';\r\n };\r\n ChartInternal.prototype.labelOffsetX = function (d) {\r\n var paddingX = 'paddingX' in d ? d.paddingX : 3;\r\n var paddingY = 'paddingY' in d ? d.paddingY : 3;\r\n return 'vertical' in d && d.vertical\r\n ? this.regionY(d) + paddingY\r\n : this.regionX(d) + paddingX;\r\n };\r\n ChartInternal.prototype.labelOffsetY = function (d) {\r\n var paddingX = 'paddingX' in d ? d.paddingX : 3;\r\n var paddingY = 'paddingY' in d ? d.paddingY : 3;\r\n return 'vertical' in d && d.vertical\r\n ? -(this.regionX(d) + paddingX)\r\n : this.regionY(d) + 10 + paddingY;\r\n };\n\n function c3LogScale(d3, linearScale, logScale) {\r\n var PROJECTION = [0.01, 10];\r\n if (!linearScale) {\r\n linearScale = d3.scaleLinear();\r\n linearScale.range(PROJECTION);\r\n }\r\n if (!logScale) {\r\n logScale = d3.scaleLog();\r\n logScale.domain(PROJECTION);\r\n logScale.nice();\r\n }\r\n // copied from https://github.com/compute-io/logspace\r\n function logspace(a, b, len) {\r\n var arr, end, tmp, d;\r\n if (arguments.length < 3) {\r\n len = 10;\r\n }\r\n else {\r\n if (len === 0) {\r\n return [];\r\n }\r\n }\r\n // Calculate the increment:\r\n end = len - 1;\r\n d = (b - a) / end;\r\n // Build the output array...\r\n arr = new Array(len);\r\n tmp = a;\r\n arr[0] = Math.pow(10, tmp);\r\n for (var i = 1; i < end; i++) {\r\n tmp += d;\r\n arr[i] = Math.pow(10, tmp);\r\n }\r\n arr[end] = Math.pow(10, b);\r\n return arr;\r\n }\r\n function scale(x) {\r\n return logScale(linearScale(x));\r\n }\r\n scale.domain = function (x) {\r\n if (!arguments.length) {\r\n return linearScale.domain();\r\n }\r\n linearScale.domain(x);\r\n return scale;\r\n };\r\n scale.range = function (x) {\r\n if (!arguments.length) {\r\n return logScale.range();\r\n }\r\n logScale.range(x);\r\n return scale;\r\n };\r\n scale.ticks = function (m) {\r\n return logspace(-2, 1, m || 10).map(function (v) {\r\n return linearScale.invert(v);\r\n });\r\n };\r\n scale.copy = function () {\r\n return c3LogScale(d3, linearScale.copy(), logScale.copy());\r\n };\r\n return scale;\r\n }\r\n ChartInternal.prototype.getScale = function (min, max, forTimeseries) {\r\n return (forTimeseries ? this.d3.scaleTime() : this.d3.scaleLinear()).range([\r\n min,\r\n max\r\n ]);\r\n };\r\n ChartInternal.prototype.getX = function (min, max, domain, offset) {\r\n var $$ = this, scale = $$.getScale(min, max, $$.isTimeSeries()), _scale = domain ? scale.domain(domain) : scale, key;\r\n // Define customized scale if categorized axis\r\n if ($$.isCategorized()) {\r\n offset =\r\n offset ||\r\n function () {\r\n return 0;\r\n };\r\n scale = function (d, raw) {\r\n var v = _scale(d) + offset(d);\r\n return raw ? v : Math.ceil(v);\r\n };\r\n }\r\n else {\r\n scale = function (d, raw) {\r\n var v = _scale(d);\r\n return raw ? v : Math.ceil(v);\r\n };\r\n }\r\n // define functions\r\n for (key in _scale) {\r\n scale[key] = _scale[key];\r\n }\r\n scale.orgDomain = function () {\r\n return _scale.domain();\r\n };\r\n // define custom domain() for categorized axis\r\n if ($$.isCategorized()) {\r\n scale.domain = function (domain) {\r\n if (!arguments.length) {\r\n domain = this.orgDomain();\r\n return [domain[0], domain[1] + 1];\r\n }\r\n _scale.domain(domain);\r\n return scale;\r\n };\r\n }\r\n return scale;\r\n };\r\n /**\r\n * Creates and configures a D3 scale instance for the given type.\r\n *\r\n * By defaults it returns a Linear scale.\r\n *\r\n * @param {String} type Type of d3-scale to create. Type can be 'linear', 'time', 'timeseries' or 'log'.\r\n * @param {Array} domain The scale domain such as [from, to]\r\n * @param {Array} range The scale's range such as [from, to]\r\n *\r\n * @return A d3-scale instance\r\n */\r\n ChartInternal.prototype.getY = function (type, domain, range) {\r\n var scale;\r\n if (type === 'timeseries' || type === 'time') {\r\n scale = this.d3.scaleTime();\r\n }\r\n else if (type === 'log') {\r\n scale = c3LogScale(this.d3);\r\n }\r\n else if (type === 'linear' || type === undefined) {\r\n scale = this.d3.scaleLinear();\r\n }\r\n else {\r\n throw new Error(\"Invalid Y axis type: \\\"\" + type + \"\\\"\");\r\n }\r\n if (domain) {\r\n scale.domain(domain);\r\n }\r\n if (range) {\r\n scale.range(range);\r\n }\r\n return scale;\r\n };\r\n ChartInternal.prototype.getYScale = function (id) {\r\n return this.axis.getId(id) === 'y2' ? this.y2 : this.y;\r\n };\r\n ChartInternal.prototype.getSubYScale = function (id) {\r\n return this.axis.getId(id) === 'y2' ? this.subY2 : this.subY;\r\n };\r\n ChartInternal.prototype.updateScales = function () {\r\n var $$ = this, config = $$.config, forInit = !$$.x;\r\n // update edges\r\n $$.xMin = config.axis_rotated ? 1 : 0;\r\n $$.xMax = config.axis_rotated ? $$.height : $$.width;\r\n $$.yMin = config.axis_rotated ? 0 : $$.height;\r\n $$.yMax = config.axis_rotated ? $$.width : 1;\r\n $$.subXMin = $$.xMin;\r\n $$.subXMax = $$.xMax;\r\n $$.subYMin = config.axis_rotated ? 0 : $$.height2;\r\n $$.subYMax = config.axis_rotated ? $$.width2 : 1;\r\n // update scales\r\n $$.x = $$.getX($$.xMin, $$.xMax, forInit ? undefined : $$.x.orgDomain(), function () {\r\n return $$.xAxis.tickOffset();\r\n });\r\n $$.y = $$.getY(config.axis_y_type, forInit ? config.axis_y_default : $$.y.domain(), [$$.yMin, $$.yMax]);\r\n $$.y2 = $$.getY(config.axis_y2_type, forInit ? config.axis_y2_default : $$.y2.domain(), [$$.yMin, $$.yMax]);\r\n $$.subX = $$.getX($$.xMin, $$.xMax, $$.orgXDomain, function (d) {\r\n return d % 1 ? 0 : $$.subXAxis.tickOffset();\r\n });\r\n $$.subY = $$.getY(config.axis_y_type, forInit ? config.axis_y_default : $$.subY.domain(), [$$.subYMin, $$.subYMax]);\r\n $$.subY2 = $$.getY(config.axis_y2_type, forInit ? config.axis_y2_default : $$.subY2.domain(), [$$.subYMin, $$.subYMax]);\r\n // update axes\r\n $$.xAxisTickFormat = $$.axis.getXAxisTickFormat();\r\n $$.xAxisTickValues = $$.axis.getXAxisTickValues();\r\n $$.yAxisTickValues = $$.axis.getYAxisTickValues();\r\n $$.y2AxisTickValues = $$.axis.getY2AxisTickValues();\r\n $$.xAxis = $$.axis.getXAxis($$.x, $$.xOrient, $$.xAxisTickFormat, $$.xAxisTickValues, config.axis_x_tick_outer);\r\n $$.subXAxis = $$.axis.getXAxis($$.subX, $$.subXOrient, $$.xAxisTickFormat, $$.xAxisTickValues, config.axis_x_tick_outer);\r\n $$.yAxis = $$.axis.getYAxis('y', $$.y, $$.yOrient, $$.yAxisTickValues, config.axis_y_tick_outer);\r\n $$.y2Axis = $$.axis.getYAxis('y2', $$.y2, $$.y2Orient, $$.y2AxisTickValues, config.axis_y2_tick_outer);\r\n // Set initialized scales to brush and zoom\r\n if (!forInit) {\r\n if ($$.brush) {\r\n $$.brush.updateScale($$.subX);\r\n }\r\n }\r\n // update for arc\r\n if ($$.updateArc) {\r\n $$.updateArc();\r\n }\r\n };\n\n ChartInternal.prototype.selectPoint = function (target, d, i) {\r\n var $$ = this, config = $$.config, cx = (config.axis_rotated ? $$.circleY : $$.circleX).bind($$), cy = (config.axis_rotated ? $$.circleX : $$.circleY).bind($$), r = $$.pointSelectR.bind($$);\r\n config.data_onselected.call($$.api, d, target.node());\r\n // add selected-circle on low layer g\r\n $$.main\r\n .select('.' + CLASS.selectedCircles + $$.getTargetSelectorSuffix(d.id))\r\n .selectAll('.' + CLASS.selectedCircle + '-' + i)\r\n .data([d])\r\n .enter()\r\n .append('circle')\r\n .attr('class', function () {\r\n return $$.generateClass(CLASS.selectedCircle, i);\r\n })\r\n .attr('cx', cx)\r\n .attr('cy', cy)\r\n .attr('stroke', function () {\r\n return $$.color(d);\r\n })\r\n .attr('r', function (d) {\r\n return $$.pointSelectR(d) * 1.4;\r\n })\r\n .transition()\r\n .duration(100)\r\n .attr('r', r);\r\n };\r\n ChartInternal.prototype.unselectPoint = function (target, d, i) {\r\n var $$ = this;\r\n $$.config.data_onunselected.call($$.api, d, target.node());\r\n // remove selected-circle from low layer g\r\n $$.main\r\n .select('.' + CLASS.selectedCircles + $$.getTargetSelectorSuffix(d.id))\r\n .selectAll('.' + CLASS.selectedCircle + '-' + i)\r\n .transition()\r\n .duration(100)\r\n .attr('r', 0)\r\n .remove();\r\n };\r\n ChartInternal.prototype.togglePoint = function (selected, target, d, i) {\r\n selected ? this.selectPoint(target, d, i) : this.unselectPoint(target, d, i);\r\n };\r\n ChartInternal.prototype.selectPath = function (target, d) {\r\n var $$ = this;\r\n $$.config.data_onselected.call($$, d, target.node());\r\n if ($$.config.interaction_brighten) {\r\n target\r\n .transition()\r\n .duration(100)\r\n .style('fill', function () {\r\n return $$.d3.rgb($$.color(d)).brighter(0.75);\r\n });\r\n }\r\n };\r\n ChartInternal.prototype.unselectPath = function (target, d) {\r\n var $$ = this;\r\n $$.config.data_onunselected.call($$, d, target.node());\r\n if ($$.config.interaction_brighten) {\r\n target\r\n .transition()\r\n .duration(100)\r\n .style('fill', function () {\r\n return $$.color(d);\r\n });\r\n }\r\n };\r\n ChartInternal.prototype.togglePath = function (selected, target, d, i) {\r\n selected ? this.selectPath(target, d, i) : this.unselectPath(target, d, i);\r\n };\r\n ChartInternal.prototype.getToggle = function (that, d) {\r\n var $$ = this, toggle;\r\n if (that.nodeName === 'circle') {\r\n if ($$.isStepType(d)) {\r\n // circle is hidden in step chart, so treat as within the click area\r\n toggle = function () { }; // TODO: how to select step chart?\r\n }\r\n else {\r\n toggle = $$.togglePoint;\r\n }\r\n }\r\n else if (that.nodeName === 'path') {\r\n toggle = $$.togglePath;\r\n }\r\n return toggle;\r\n };\r\n ChartInternal.prototype.toggleShape = function (that, d, i) {\r\n var $$ = this, d3 = $$.d3, config = $$.config, shape = d3.select(that), isSelected = shape.classed(CLASS.SELECTED), toggle = $$.getToggle(that, d).bind($$);\r\n if (config.data_selection_enabled && config.data_selection_isselectable(d)) {\r\n if (!config.data_selection_multiple) {\r\n $$.main\r\n .selectAll('.' +\r\n CLASS.shapes +\r\n (config.data_selection_grouped\r\n ? $$.getTargetSelectorSuffix(d.id)\r\n : ''))\r\n .selectAll('.' + CLASS.shape)\r\n .each(function (d, i) {\r\n var shape = d3.select(this);\r\n if (shape.classed(CLASS.SELECTED)) {\r\n toggle(false, shape.classed(CLASS.SELECTED, false), d, i);\r\n }\r\n });\r\n }\r\n shape.classed(CLASS.SELECTED, !isSelected);\r\n toggle(!isSelected, shape, d, i);\r\n }\r\n };\n\n ChartInternal.prototype.initBar = function () {\r\n var $$ = this;\r\n $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartBars);\r\n };\r\n ChartInternal.prototype.updateTargetsForBar = function (targets) {\r\n var $$ = this, config = $$.config, mainBars, mainBarEnter, classChartBar = $$.classChartBar.bind($$), classBars = $$.classBars.bind($$), classFocus = $$.classFocus.bind($$);\r\n mainBars = $$.main\r\n .select('.' + CLASS.chartBars)\r\n .selectAll('.' + CLASS.chartBar)\r\n .data(targets)\r\n .attr('class', function (d) {\r\n return classChartBar(d) + classFocus(d);\r\n });\r\n mainBarEnter = mainBars\r\n .enter()\r\n .append('g')\r\n .attr('class', classChartBar)\r\n .style('pointer-events', 'none');\r\n // Bars for each data\r\n mainBarEnter\r\n .append('g')\r\n .attr('class', classBars)\r\n .style('cursor', function (d) {\r\n return config.data_selection_isselectable(d) ? 'pointer' : null;\r\n });\r\n };\r\n ChartInternal.prototype.updateBar = function (durationForExit) {\r\n var $$ = this, barData = $$.barData.bind($$), classBar = $$.classBar.bind($$), initialOpacity = $$.initialOpacity.bind($$), color = function (d) {\r\n return $$.color(d.id);\r\n };\r\n var mainBar = $$.main\r\n .selectAll('.' + CLASS.bars)\r\n .selectAll('.' + CLASS.bar)\r\n .data(barData);\r\n var mainBarEnter = mainBar\r\n .enter()\r\n .append('path')\r\n .attr('class', classBar)\r\n .style('stroke', color)\r\n .style('fill', color);\r\n $$.mainBar = mainBarEnter.merge(mainBar).style('opacity', initialOpacity);\r\n mainBar\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0);\r\n };\r\n ChartInternal.prototype.redrawBar = function (drawBar, withTransition, transition) {\r\n var $$ = this;\r\n return [\r\n (withTransition ? this.mainBar.transition(transition) : this.mainBar)\r\n .attr('d', drawBar)\r\n .style('stroke', this.color)\r\n .style('fill', this.color)\r\n .style('opacity', function (d) { return ($$.isTargetToShow(d.id) ? 1 : 0); })\r\n ];\r\n };\r\n ChartInternal.prototype.getBarW = function (axis, barTargetsNum) {\r\n var $$ = this, config = $$.config, w = typeof config.bar_width === 'number'\r\n ? config.bar_width\r\n : barTargetsNum\r\n ? (axis.tickInterval() * config.bar_width_ratio) / barTargetsNum\r\n : 0;\r\n return config.bar_width_max && w > config.bar_width_max\r\n ? config.bar_width_max\r\n : w;\r\n };\r\n ChartInternal.prototype.getBars = function (i, id) {\r\n var $$ = this;\r\n return (id\r\n ? $$.main.selectAll('.' + CLASS.bars + $$.getTargetSelectorSuffix(id))\r\n : $$.main).selectAll('.' + CLASS.bar + (isValue(i) ? '-' + i : ''));\r\n };\r\n ChartInternal.prototype.expandBars = function (i, id, reset) {\r\n var $$ = this;\r\n if (reset) {\r\n $$.unexpandBars();\r\n }\r\n $$.getBars(i, id).classed(CLASS.EXPANDED, true);\r\n };\r\n ChartInternal.prototype.unexpandBars = function (i) {\r\n var $$ = this;\r\n $$.getBars(i).classed(CLASS.EXPANDED, false);\r\n };\r\n ChartInternal.prototype.generateDrawBar = function (barIndices, isSub) {\r\n var $$ = this, config = $$.config, getPoints = $$.generateGetBarPoints(barIndices, isSub);\r\n return function (d, i) {\r\n // 4 points that make a bar\r\n var points = getPoints(d, i);\r\n // switch points if axis is rotated, not applicable for sub chart\r\n var indexX = config.axis_rotated ? 1 : 0;\r\n var indexY = config.axis_rotated ? 0 : 1;\r\n var path = 'M ' +\r\n points[0][indexX] +\r\n ',' +\r\n points[0][indexY] +\r\n ' ' +\r\n 'L' +\r\n points[1][indexX] +\r\n ',' +\r\n points[1][indexY] +\r\n ' ' +\r\n 'L' +\r\n points[2][indexX] +\r\n ',' +\r\n points[2][indexY] +\r\n ' ' +\r\n 'L' +\r\n points[3][indexX] +\r\n ',' +\r\n points[3][indexY] +\r\n ' ' +\r\n 'z';\r\n return path;\r\n };\r\n };\r\n ChartInternal.prototype.generateGetBarPoints = function (barIndices, isSub) {\r\n var $$ = this, axis = isSub ? $$.subXAxis : $$.xAxis, barTargetsNum = barIndices.__max__ + 1, barW = $$.getBarW(axis, barTargetsNum), barX = $$.getShapeX(barW, barTargetsNum, barIndices, !!isSub), barY = $$.getShapeY(!!isSub), barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub), barSpaceOffset = barW * ($$.config.bar_space / 2), yScale = isSub ? $$.getSubYScale : $$.getYScale;\r\n return function (d, i) {\r\n var y0 = yScale.call($$, d.id)(0), offset = barOffset(d, i) || y0, // offset is for stacked bar chart\r\n posX = barX(d), posY = barY(d);\r\n // fix posY not to overflow opposite quadrant\r\n if ($$.config.axis_rotated) {\r\n if ((0 < d.value && posY < y0) || (d.value < 0 && y0 < posY)) {\r\n posY = y0;\r\n }\r\n }\r\n posY -= y0 - offset;\r\n // 4 points that make a bar\r\n return [\r\n [posX + barSpaceOffset, offset],\r\n [posX + barSpaceOffset, posY],\r\n [posX + barW - barSpaceOffset, posY],\r\n [posX + barW - barSpaceOffset, offset]\r\n ];\r\n };\r\n };\r\n /**\r\n * Returns whether the data point is within the given bar shape.\r\n *\r\n * @param mouse\r\n * @param barShape\r\n * @return {boolean}\r\n */\r\n ChartInternal.prototype.isWithinBar = function (mouse, barShape) {\r\n return isWithinBox(mouse, getBBox(barShape), 2);\r\n };\n\n ChartInternal.prototype.getShapeIndices = function (typeFilter) {\r\n var $$ = this, config = $$.config, indices = {}, i = 0, j, k;\r\n $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)).forEach(function (d) {\r\n for (j = 0; j < config.data_groups.length; j++) {\r\n if (config.data_groups[j].indexOf(d.id) < 0) {\r\n continue;\r\n }\r\n for (k = 0; k < config.data_groups[j].length; k++) {\r\n if (config.data_groups[j][k] in indices) {\r\n indices[d.id] = indices[config.data_groups[j][k]];\r\n break;\r\n }\r\n }\r\n }\r\n if (isUndefined(indices[d.id])) {\r\n indices[d.id] = i++;\r\n }\r\n });\r\n indices.__max__ = i - 1;\r\n return indices;\r\n };\r\n ChartInternal.prototype.getShapeX = function (offset, targetsNum, indices, isSub) {\r\n var $$ = this, scale = isSub ? $$.subX : $$.x;\r\n return function (d) {\r\n var index = d.id in indices ? indices[d.id] : 0;\r\n return d.x || d.x === 0 ? scale(d.x) - offset * (targetsNum / 2 - index) : 0;\r\n };\r\n };\r\n ChartInternal.prototype.getShapeY = function (isSub) {\r\n var $$ = this;\r\n return function (d) {\r\n var scale = isSub ? $$.getSubYScale(d.id) : $$.getYScale(d.id);\r\n return scale($$.isTargetNormalized(d.id) ? $$.getRatio('index', d, true) : d.value);\r\n };\r\n };\r\n ChartInternal.prototype.getShapeOffset = function (typeFilter, indices, isSub) {\r\n var $$ = this, targets = $$.orderTargets($$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$))), targetIds = targets.map(function (t) {\r\n return t.id;\r\n });\r\n return function (d, i) {\r\n var scale = isSub ? $$.getSubYScale(d.id) : $$.getYScale(d.id), y0 = scale(0), offset = y0;\r\n targets.forEach(function (t) {\r\n var rowValues = $$.isStepType(d)\r\n ? $$.convertValuesToStep(t.values)\r\n : t.values;\r\n var isTargetNormalized = $$.isTargetNormalized(d.id);\r\n var values = rowValues.map(function (v) {\r\n return isTargetNormalized ? $$.getRatio('index', v, true) : v.value;\r\n });\r\n if (t.id === d.id || indices[t.id] !== indices[d.id]) {\r\n return;\r\n }\r\n if (targetIds.indexOf(t.id) < targetIds.indexOf(d.id)) {\r\n // check if the x values line up\r\n if (isUndefined(rowValues[i]) || +rowValues[i].x !== +d.x) {\r\n // \"+\" for timeseries\r\n // if not, try to find the value that does line up\r\n i = -1;\r\n rowValues.forEach(function (v, j) {\r\n var x1 = v.x.constructor === Date ? +v.x : v.x;\r\n var x2 = d.x.constructor === Date ? +d.x : d.x;\r\n if (x1 === x2) {\r\n i = j;\r\n }\r\n });\r\n }\r\n if (i in rowValues && rowValues[i].value * d.value >= 0) {\r\n offset += scale(values[i]) - y0;\r\n }\r\n }\r\n });\r\n return offset;\r\n };\r\n };\r\n ChartInternal.prototype.isWithinShape = function (that, d) {\r\n var $$ = this, shape = $$.d3.select(that), isWithin;\r\n if (!$$.isTargetToShow(d.id)) {\r\n isWithin = false;\r\n }\r\n else if (that.nodeName === 'circle') {\r\n isWithin = $$.isStepType(d)\r\n ? $$.isWithinStep(that, $$.getYScale(d.id)(d.value))\r\n : $$.isWithinCircle(that, $$.pointSelectR(d) * 1.5);\r\n }\r\n else if (that.nodeName === 'path') {\r\n isWithin = shape.classed(CLASS.bar)\r\n ? $$.isWithinBar($$.d3.mouse(that), that)\r\n : true;\r\n }\r\n return isWithin;\r\n };\r\n ChartInternal.prototype.getInterpolate = function (d) {\r\n var $$ = this, d3 = $$.d3, types = {\r\n linear: d3.curveLinear,\r\n 'linear-closed': d3.curveLinearClosed,\r\n basis: d3.curveBasis,\r\n 'basis-open': d3.curveBasisOpen,\r\n 'basis-closed': d3.curveBasisClosed,\r\n bundle: d3.curveBundle,\r\n cardinal: d3.curveCardinal,\r\n 'cardinal-open': d3.curveCardinalOpen,\r\n 'cardinal-closed': d3.curveCardinalClosed,\r\n monotone: d3.curveMonotoneX,\r\n step: d3.curveStep,\r\n 'step-before': d3.curveStepBefore,\r\n 'step-after': d3.curveStepAfter\r\n }, type;\r\n if ($$.isSplineType(d)) {\r\n type = types[$$.config.spline_interpolation_type] || types.cardinal;\r\n }\r\n else if ($$.isStepType(d)) {\r\n type = types[$$.config.line_step_type];\r\n }\r\n else {\r\n type = types.linear;\r\n }\r\n return type;\r\n };\n\n ChartInternal.prototype.initLine = function () {\r\n var $$ = this;\r\n $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartLines);\r\n };\r\n ChartInternal.prototype.updateTargetsForLine = function (targets) {\r\n var $$ = this, config = $$.config, mainLines, mainLineEnter, classChartLine = $$.classChartLine.bind($$), classLines = $$.classLines.bind($$), classAreas = $$.classAreas.bind($$), classCircles = $$.classCircles.bind($$), classFocus = $$.classFocus.bind($$);\r\n mainLines = $$.main\r\n .select('.' + CLASS.chartLines)\r\n .selectAll('.' + CLASS.chartLine)\r\n .data(targets)\r\n .attr('class', function (d) {\r\n return classChartLine(d) + classFocus(d);\r\n });\r\n mainLineEnter = mainLines\r\n .enter()\r\n .append('g')\r\n .attr('class', classChartLine)\r\n .style('opacity', 0)\r\n .style('pointer-events', 'none');\r\n // Lines for each data\r\n mainLineEnter.append('g').attr('class', classLines);\r\n // Areas\r\n mainLineEnter.append('g').attr('class', classAreas);\r\n // Circles for each data point on lines\r\n mainLineEnter.append('g').attr('class', function (d) {\r\n return $$.generateClass(CLASS.selectedCircles, d.id);\r\n });\r\n mainLineEnter\r\n .append('g')\r\n .attr('class', classCircles)\r\n .style('cursor', function (d) {\r\n return config.data_selection_isselectable(d) ? 'pointer' : null;\r\n });\r\n // Update date for selected circles\r\n targets.forEach(function (t) {\r\n $$.main\r\n .selectAll('.' + CLASS.selectedCircles + $$.getTargetSelectorSuffix(t.id))\r\n .selectAll('.' + CLASS.selectedCircle)\r\n .each(function (d) {\r\n d.value = t.values[d.index].value;\r\n });\r\n });\r\n // MEMO: can not keep same color...\r\n //mainLineUpdate.exit().remove();\r\n };\r\n ChartInternal.prototype.updateLine = function (durationForExit) {\r\n var $$ = this;\r\n var mainLine = $$.main\r\n .selectAll('.' + CLASS.lines)\r\n .selectAll('.' + CLASS.line)\r\n .data($$.lineData.bind($$));\r\n var mainLineEnter = mainLine\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classLine.bind($$))\r\n .style('stroke', $$.color);\r\n $$.mainLine = mainLineEnter\r\n .merge(mainLine)\r\n .style('opacity', $$.initialOpacity.bind($$))\r\n .style('shape-rendering', function (d) {\r\n return $$.isStepType(d) ? 'crispEdges' : '';\r\n })\r\n .attr('transform', null);\r\n mainLine\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0);\r\n };\r\n ChartInternal.prototype.redrawLine = function (drawLine, withTransition, transition) {\r\n return [\r\n (withTransition ? this.mainLine.transition(transition) : this.mainLine)\r\n .attr('d', drawLine)\r\n .style('stroke', this.color)\r\n .style('opacity', 1)\r\n ];\r\n };\r\n ChartInternal.prototype.generateDrawLine = function (lineIndices, isSub) {\r\n var $$ = this, config = $$.config, line = $$.d3.line(), getPoints = $$.generateGetLinePoints(lineIndices, isSub), yScaleGetter = isSub ? $$.getSubYScale : $$.getYScale, xValue = function (d) {\r\n return (isSub ? $$.subxx : $$.xx).call($$, d);\r\n }, yValue = function (d, i) {\r\n return config.data_groups.length > 0\r\n ? getPoints(d, i)[0][1]\r\n : yScaleGetter.call($$, d.id)(d.value);\r\n };\r\n line = config.axis_rotated\r\n ? line.x(yValue).y(xValue)\r\n : line.x(xValue).y(yValue);\r\n if (!config.line_connectNull) {\r\n line = line.defined(function (d) {\r\n return d.value != null;\r\n });\r\n }\r\n return function (d) {\r\n var values = config.line_connectNull\r\n ? $$.filterRemoveNull(d.values)\r\n : d.values, x = isSub ? $$.subX : $$.x, y = yScaleGetter.call($$, d.id), x0 = 0, y0 = 0, path;\r\n if ($$.isLineType(d)) {\r\n if (config.data_regions[d.id]) {\r\n path = $$.lineWithRegions(values, x, y, config.data_regions[d.id]);\r\n }\r\n else {\r\n if ($$.isStepType(d)) {\r\n values = $$.convertValuesToStep(values);\r\n }\r\n path = line.curve($$.getInterpolate(d))(values);\r\n }\r\n }\r\n else {\r\n if (values[0]) {\r\n x0 = x(values[0].x);\r\n y0 = y(values[0].value);\r\n }\r\n path = config.axis_rotated ? 'M ' + y0 + ' ' + x0 : 'M ' + x0 + ' ' + y0;\r\n }\r\n return path ? path : 'M 0 0';\r\n };\r\n };\r\n ChartInternal.prototype.generateGetLinePoints = function (lineIndices, isSub) {\r\n // partial duplication of generateGetBarPoints\r\n var $$ = this, config = $$.config, lineTargetsNum = lineIndices.__max__ + 1, x = $$.getShapeX(0, lineTargetsNum, lineIndices, !!isSub), y = $$.getShapeY(!!isSub), lineOffset = $$.getShapeOffset($$.isLineType, lineIndices, !!isSub), yScale = isSub ? $$.getSubYScale : $$.getYScale;\r\n return function (d, i) {\r\n var y0 = yScale.call($$, d.id)(0), offset = lineOffset(d, i) || y0, // offset is for stacked area chart\r\n posX = x(d), posY = y(d);\r\n // fix posY not to overflow opposite quadrant\r\n if (config.axis_rotated) {\r\n if ((0 < d.value && posY < y0) || (d.value < 0 && y0 < posY)) {\r\n posY = y0;\r\n }\r\n }\r\n // 1 point that marks the line position\r\n return [\r\n [posX, posY - (y0 - offset)],\r\n [posX, posY - (y0 - offset)],\r\n [posX, posY - (y0 - offset)],\r\n [posX, posY - (y0 - offset)] // needed for compatibility\r\n ];\r\n };\r\n };\r\n ChartInternal.prototype.lineWithRegions = function (d, x, y, _regions) {\r\n var $$ = this, config = $$.config, prev = -1, i, j, s = 'M', sWithRegion, xp, yp, dx, dy, dd, diff, diffx2, xOffset = $$.isCategorized() ? 0.5 : 0, xValue, yValue, regions = [];\r\n function isWithinRegions(x, regions) {\r\n var i;\r\n for (i = 0; i < regions.length; i++) {\r\n if (regions[i].start < x && x <= regions[i].end) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n // Check start/end of regions\r\n if (isDefined(_regions)) {\r\n for (i = 0; i < _regions.length; i++) {\r\n regions[i] = {};\r\n if (isUndefined(_regions[i].start)) {\r\n regions[i].start = d[0].x;\r\n }\r\n else {\r\n regions[i].start = $$.isTimeSeries()\r\n ? $$.parseDate(_regions[i].start)\r\n : _regions[i].start;\r\n }\r\n if (isUndefined(_regions[i].end)) {\r\n regions[i].end = d[d.length - 1].x;\r\n }\r\n else {\r\n regions[i].end = $$.isTimeSeries()\r\n ? $$.parseDate(_regions[i].end)\r\n : _regions[i].end;\r\n }\r\n }\r\n }\r\n // Set scales\r\n xValue = config.axis_rotated\r\n ? function (d) {\r\n return y(d.value);\r\n }\r\n : function (d) {\r\n return x(d.x);\r\n };\r\n yValue = config.axis_rotated\r\n ? function (d) {\r\n return x(d.x);\r\n }\r\n : function (d) {\r\n return y(d.value);\r\n };\r\n // Define svg generator function for region\r\n function generateM(points) {\r\n return ('M' +\r\n points[0][0] +\r\n ' ' +\r\n points[0][1] +\r\n ' ' +\r\n points[1][0] +\r\n ' ' +\r\n points[1][1]);\r\n }\r\n if ($$.isTimeSeries()) {\r\n sWithRegion = function (d0, d1, j, diff) {\r\n var x0 = d0.x.getTime(), x_diff = d1.x - d0.x, xv0 = new Date(x0 + x_diff * j), xv1 = new Date(x0 + x_diff * (j + diff)), points;\r\n if (config.axis_rotated) {\r\n points = [\r\n [y(yp(j)), x(xv0)],\r\n [y(yp(j + diff)), x(xv1)]\r\n ];\r\n }\r\n else {\r\n points = [\r\n [x(xv0), y(yp(j))],\r\n [x(xv1), y(yp(j + diff))]\r\n ];\r\n }\r\n return generateM(points);\r\n };\r\n }\r\n else {\r\n sWithRegion = function (d0, d1, j, diff) {\r\n var points;\r\n if (config.axis_rotated) {\r\n points = [\r\n [y(yp(j), true), x(xp(j))],\r\n [y(yp(j + diff), true), x(xp(j + diff))]\r\n ];\r\n }\r\n else {\r\n points = [\r\n [x(xp(j), true), y(yp(j))],\r\n [x(xp(j + diff), true), y(yp(j + diff))]\r\n ];\r\n }\r\n return generateM(points);\r\n };\r\n }\r\n // Generate\r\n for (i = 0; i < d.length; i++) {\r\n // Draw as normal\r\n if (isUndefined(regions) || !isWithinRegions(d[i].x, regions)) {\r\n s += ' ' + xValue(d[i]) + ' ' + yValue(d[i]);\r\n }\r\n // Draw with region // TODO: Fix for horizotal charts\r\n else {\r\n xp = $$.getScale(d[i - 1].x + xOffset, d[i].x + xOffset, $$.isTimeSeries());\r\n yp = $$.getScale(d[i - 1].value, d[i].value);\r\n dx = x(d[i].x) - x(d[i - 1].x);\r\n dy = y(d[i].value) - y(d[i - 1].value);\r\n dd = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));\r\n diff = 2 / dd;\r\n diffx2 = diff * 2;\r\n for (j = diff; j <= 1; j += diffx2) {\r\n s += sWithRegion(d[i - 1], d[i], j, diff);\r\n }\r\n }\r\n prev = d[i].x;\r\n }\r\n return s;\r\n };\r\n ChartInternal.prototype.updateArea = function (durationForExit) {\r\n var $$ = this, d3 = $$.d3;\r\n var mainArea = $$.main\r\n .selectAll('.' + CLASS.areas)\r\n .selectAll('.' + CLASS.area)\r\n .data($$.lineData.bind($$));\r\n var mainAreaEnter = mainArea\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classArea.bind($$))\r\n .style('fill', $$.color)\r\n .style('opacity', function () {\r\n $$.orgAreaOpacity = +d3.select(this).style('opacity');\r\n return 0;\r\n });\r\n $$.mainArea = mainAreaEnter\r\n .merge(mainArea)\r\n .style('opacity', $$.orgAreaOpacity);\r\n mainArea\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0);\r\n };\r\n ChartInternal.prototype.redrawArea = function (drawArea, withTransition, transition) {\r\n return [\r\n (withTransition ? this.mainArea.transition(transition) : this.mainArea)\r\n .attr('d', drawArea)\r\n .style('fill', this.color)\r\n .style('opacity', this.orgAreaOpacity)\r\n ];\r\n };\r\n ChartInternal.prototype.generateDrawArea = function (areaIndices, isSub) {\r\n var $$ = this, config = $$.config, area = $$.d3.area(), getPoints = $$.generateGetAreaPoints(areaIndices, isSub), yScaleGetter = isSub ? $$.getSubYScale : $$.getYScale, xValue = function (d) {\r\n return (isSub ? $$.subxx : $$.xx).call($$, d);\r\n }, value0 = function (d, i) {\r\n return config.data_groups.length > 0\r\n ? getPoints(d, i)[0][1]\r\n : yScaleGetter.call($$, d.id)($$.getAreaBaseValue(d.id));\r\n }, value1 = function (d, i) {\r\n return config.data_groups.length > 0\r\n ? getPoints(d, i)[1][1]\r\n : yScaleGetter.call($$, d.id)(d.value);\r\n };\r\n area = config.axis_rotated\r\n ? area\r\n .x0(value0)\r\n .x1(value1)\r\n .y(xValue)\r\n : area\r\n .x(xValue)\r\n .y0(config.area_above ? 0 : value0)\r\n .y1(value1);\r\n if (!config.line_connectNull) {\r\n area = area.defined(function (d) {\r\n return d.value !== null;\r\n });\r\n }\r\n return function (d) {\r\n var values = config.line_connectNull\r\n ? $$.filterRemoveNull(d.values)\r\n : d.values, x0 = 0, y0 = 0, path;\r\n if ($$.isAreaType(d)) {\r\n if ($$.isStepType(d)) {\r\n values = $$.convertValuesToStep(values);\r\n }\r\n path = area.curve($$.getInterpolate(d))(values);\r\n }\r\n else {\r\n if (values[0]) {\r\n x0 = $$.x(values[0].x);\r\n y0 = $$.getYScale(d.id)(values[0].value);\r\n }\r\n path = config.axis_rotated ? 'M ' + y0 + ' ' + x0 : 'M ' + x0 + ' ' + y0;\r\n }\r\n return path ? path : 'M 0 0';\r\n };\r\n };\r\n ChartInternal.prototype.getAreaBaseValue = function () {\r\n return 0;\r\n };\r\n ChartInternal.prototype.generateGetAreaPoints = function (areaIndices, isSub) {\r\n // partial duplication of generateGetBarPoints\r\n var $$ = this, config = $$.config, areaTargetsNum = areaIndices.__max__ + 1, x = $$.getShapeX(0, areaTargetsNum, areaIndices, !!isSub), y = $$.getShapeY(!!isSub), areaOffset = $$.getShapeOffset($$.isAreaType, areaIndices, !!isSub), yScale = isSub ? $$.getSubYScale : $$.getYScale;\r\n return function (d, i) {\r\n var y0 = yScale.call($$, d.id)(0), offset = areaOffset(d, i) || y0, // offset is for stacked area chart\r\n posX = x(d), posY = y(d);\r\n // fix posY not to overflow opposite quadrant\r\n if (config.axis_rotated) {\r\n if ((0 < d.value && posY < y0) || (d.value < 0 && y0 < posY)) {\r\n posY = y0;\r\n }\r\n }\r\n // 1 point that marks the area position\r\n return [\r\n [posX, offset],\r\n [posX, posY - (y0 - offset)],\r\n [posX, posY - (y0 - offset)],\r\n [posX, offset] // needed for compatibility\r\n ];\r\n };\r\n };\r\n ChartInternal.prototype.updateCircle = function (cx, cy) {\r\n var $$ = this;\r\n var mainCircle = $$.main\r\n .selectAll('.' + CLASS.circles)\r\n .selectAll('.' + CLASS.circle)\r\n .data($$.lineOrScatterOrStanfordData.bind($$));\r\n var mainCircleEnter = mainCircle\r\n .enter()\r\n .append('circle')\r\n .attr('shape-rendering', $$.isStanfordGraphType() ? 'crispEdges' : '')\r\n .attr('class', $$.classCircle.bind($$))\r\n .attr('cx', cx)\r\n .attr('cy', cy)\r\n .attr('r', $$.pointR.bind($$))\r\n .style('color', $$.isStanfordGraphType() ? $$.getStanfordPointColor.bind($$) : $$.color);\r\n $$.mainCircle = mainCircleEnter\r\n .merge(mainCircle)\r\n .style('opacity', $$.isStanfordGraphType() ? 1 : $$.initialOpacityForCircle.bind($$));\r\n mainCircle.exit().style('opacity', 0);\r\n };\r\n ChartInternal.prototype.redrawCircle = function (cx, cy, withTransition, transition) {\r\n var $$ = this, selectedCircles = $$.main.selectAll('.' + CLASS.selectedCircle);\r\n return [\r\n (withTransition ? $$.mainCircle.transition(transition) : $$.mainCircle)\r\n .style('opacity', this.opacityForCircle.bind($$))\r\n .style('color', $$.isStanfordGraphType() ? $$.getStanfordPointColor.bind($$) : $$.color)\r\n .attr('cx', cx)\r\n .attr('cy', cy),\r\n (withTransition ? selectedCircles.transition(transition) : selectedCircles)\r\n .attr('cx', cx)\r\n .attr('cy', cy)\r\n ];\r\n };\r\n ChartInternal.prototype.circleX = function (d) {\r\n return d.x || d.x === 0 ? this.x(d.x) : null;\r\n };\r\n ChartInternal.prototype.updateCircleY = function () {\r\n var $$ = this, lineIndices, getPoints;\r\n if ($$.config.data_groups.length > 0) {\r\n (lineIndices = $$.getShapeIndices($$.isLineType)),\r\n (getPoints = $$.generateGetLinePoints(lineIndices));\r\n $$.circleY = function (d, i) {\r\n return getPoints(d, i)[0][1];\r\n };\r\n }\r\n else {\r\n $$.circleY = function (d) {\r\n return $$.getYScale(d.id)(d.value);\r\n };\r\n }\r\n };\r\n ChartInternal.prototype.getCircles = function (i, id) {\r\n var $$ = this;\r\n return (id\r\n ? $$.main.selectAll('.' + CLASS.circles + $$.getTargetSelectorSuffix(id))\r\n : $$.main).selectAll('.' + CLASS.circle + (isValue(i) ? '-' + i : ''));\r\n };\r\n ChartInternal.prototype.expandCircles = function (i, id, reset) {\r\n var $$ = this, r = $$.pointExpandedR.bind($$);\r\n if (reset) {\r\n $$.unexpandCircles();\r\n }\r\n $$.getCircles(i, id)\r\n .classed(CLASS.EXPANDED, true)\r\n .attr('r', r);\r\n };\r\n ChartInternal.prototype.unexpandCircles = function (i) {\r\n var $$ = this, r = $$.pointR.bind($$);\r\n $$.getCircles(i)\r\n .filter(function () {\r\n return $$.d3.select(this).classed(CLASS.EXPANDED);\r\n })\r\n .classed(CLASS.EXPANDED, false)\r\n .attr('r', r);\r\n };\r\n ChartInternal.prototype.pointR = function (d) {\r\n var $$ = this, config = $$.config;\r\n return $$.isStepType(d)\r\n ? 0\r\n : isFunction(config.point_r)\r\n ? config.point_r(d)\r\n : config.point_r;\r\n };\r\n ChartInternal.prototype.pointExpandedR = function (d) {\r\n var $$ = this, config = $$.config;\r\n if (config.point_focus_expand_enabled) {\r\n return isFunction(config.point_focus_expand_r)\r\n ? config.point_focus_expand_r(d)\r\n : config.point_focus_expand_r\r\n ? config.point_focus_expand_r\r\n : $$.pointR(d) * 1.75;\r\n }\r\n else {\r\n return $$.pointR(d);\r\n }\r\n };\r\n ChartInternal.prototype.pointSelectR = function (d) {\r\n var $$ = this, config = $$.config;\r\n return isFunction(config.point_select_r)\r\n ? config.point_select_r(d)\r\n : config.point_select_r\r\n ? config.point_select_r\r\n : $$.pointR(d) * 4;\r\n };\r\n ChartInternal.prototype.isWithinCircle = function (that, r) {\r\n var d3 = this.d3, mouse = d3.mouse(that), d3_this = d3.select(that), cx = +d3_this.attr('cx'), cy = +d3_this.attr('cy');\r\n return Math.sqrt(Math.pow(cx - mouse[0], 2) + Math.pow(cy - mouse[1], 2)) < r;\r\n };\r\n ChartInternal.prototype.isWithinStep = function (that, y) {\r\n return Math.abs(y - this.d3.mouse(that)[1]) < 30;\r\n };\n\n ChartInternal.prototype.getCurrentWidth = function () {\r\n var $$ = this, config = $$.config;\r\n return config.size_width ? config.size_width : $$.getParentWidth();\r\n };\r\n ChartInternal.prototype.getCurrentHeight = function () {\r\n var $$ = this, config = $$.config, h = config.size_height ? config.size_height : $$.getParentHeight();\r\n return h > 0\r\n ? h\r\n : 320 / ($$.hasType('gauge') && !config.gauge_fullCircle ? 2 : 1);\r\n };\r\n ChartInternal.prototype.getCurrentPaddingTop = function () {\r\n var $$ = this, config = $$.config, padding = isValue(config.padding_top) ? config.padding_top : 0;\r\n if ($$.title && $$.title.node()) {\r\n padding += $$.getTitlePadding();\r\n }\r\n return padding;\r\n };\r\n ChartInternal.prototype.getCurrentPaddingBottom = function () {\r\n var config = this.config;\r\n return isValue(config.padding_bottom) ? config.padding_bottom : 0;\r\n };\r\n ChartInternal.prototype.getCurrentPaddingLeft = function (withoutRecompute) {\r\n var $$ = this, config = $$.config;\r\n if (isValue(config.padding_left)) {\r\n return config.padding_left;\r\n }\r\n else if (config.axis_rotated) {\r\n return !config.axis_x_show || config.axis_x_inner\r\n ? 1\r\n : Math.max(ceil10($$.getAxisWidthByAxisId('x', withoutRecompute)), 40);\r\n }\r\n else if (!config.axis_y_show || config.axis_y_inner) {\r\n // && !config.axis_rotated\r\n return $$.axis.getYAxisLabelPosition().isOuter ? 30 : 1;\r\n }\r\n else {\r\n return ceil10($$.getAxisWidthByAxisId('y', withoutRecompute));\r\n }\r\n };\r\n ChartInternal.prototype.getCurrentPaddingRight = function () {\r\n var $$ = this, config = $$.config, padding = 0, defaultPadding = 10, legendWidthOnRight = $$.isLegendRight ? $$.getLegendWidth() + 20 : 0;\r\n if (isValue(config.padding_right)) {\r\n padding = config.padding_right + 1; // 1 is needed not to hide tick line\r\n }\r\n else if (config.axis_rotated) {\r\n padding = defaultPadding + legendWidthOnRight;\r\n }\r\n else if (!config.axis_y2_show || config.axis_y2_inner) {\r\n // && !config.axis_rotated\r\n padding =\r\n 2 +\r\n legendWidthOnRight +\r\n ($$.axis.getY2AxisLabelPosition().isOuter ? 20 : 0);\r\n }\r\n else {\r\n padding = ceil10($$.getAxisWidthByAxisId('y2')) + legendWidthOnRight;\r\n }\r\n if ($$.colorScale && $$.colorScale.node()) {\r\n padding += $$.getColorScalePadding();\r\n }\r\n return padding;\r\n };\r\n ChartInternal.prototype.getParentRectValue = function (key) {\r\n var parent = this.selectChart.node(), v;\r\n while (parent && parent.tagName !== 'BODY') {\r\n try {\r\n v = parent.getBoundingClientRect()[key];\r\n }\r\n catch (e) {\r\n if (key === 'width') {\r\n // In IE in certain cases getBoundingClientRect\r\n // will cause an \"unspecified error\"\r\n v = parent.offsetWidth;\r\n }\r\n }\r\n if (v) {\r\n break;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return v;\r\n };\r\n ChartInternal.prototype.getParentWidth = function () {\r\n return this.getParentRectValue('width');\r\n };\r\n ChartInternal.prototype.getParentHeight = function () {\r\n var h = this.selectChart.style('height');\r\n return h.indexOf('px') > 0 ? +h.replace('px', '') : 0;\r\n };\r\n ChartInternal.prototype.getSvgLeft = function (withoutRecompute) {\r\n var $$ = this, config = $$.config, hasLeftAxisRect = config.axis_rotated || (!config.axis_rotated && !config.axis_y_inner), leftAxisClass = config.axis_rotated ? CLASS.axisX : CLASS.axisY, leftAxis = $$.main.select('.' + leftAxisClass).node(), svgRect = leftAxis && hasLeftAxisRect\r\n ? leftAxis.getBoundingClientRect()\r\n : { right: 0 }, chartRect = $$.selectChart.node().getBoundingClientRect(), hasArc = $$.hasArcType(), svgLeft = svgRect.right -\r\n chartRect.left -\r\n (hasArc ? 0 : $$.getCurrentPaddingLeft(withoutRecompute));\r\n return svgLeft > 0 ? svgLeft : 0;\r\n };\r\n ChartInternal.prototype.getAxisWidthByAxisId = function (id, withoutRecompute) {\r\n var $$ = this, position = $$.axis.getLabelPositionById(id);\r\n return ($$.axis.getMaxTickWidth(id, withoutRecompute) + (position.isInner ? 20 : 40));\r\n };\r\n ChartInternal.prototype.getHorizontalAxisHeight = function (axisId, isSubchart) {\r\n var $$ = this, config = $$.config, h = 30;\r\n if (axisId === 'x' && !(isDefined(isSubchart) && isSubchart ? config.subchart_axis_x_show : config.axis_x_show)) {\r\n return 8;\r\n }\r\n if (axisId === 'x' && config.axis_x_height) {\r\n return config.axis_x_height;\r\n }\r\n if (axisId === 'y' && !config.axis_y_show) {\r\n return config.legend_show && !$$.isLegendRight && !$$.isLegendInset ? 10 : 1;\r\n }\r\n if (axisId === 'y2' && !config.axis_y2_show) {\r\n return $$.rotated_padding_top;\r\n }\r\n // Calculate x axis height when tick rotated\r\n if (axisId === 'x' && !config.axis_rotated && config.axis_x_tick_rotate) {\r\n h =\r\n 30 +\r\n $$.axis.getMaxTickWidth(axisId) *\r\n Math.cos((Math.PI * (90 - Math.abs(config.axis_x_tick_rotate))) / 180);\r\n }\r\n // Calculate y axis height when tick rotated\r\n if (axisId === 'y' && config.axis_rotated && config.axis_y_tick_rotate) {\r\n h =\r\n 30 +\r\n $$.axis.getMaxTickWidth(axisId) *\r\n Math.cos((Math.PI * (90 - Math.abs(config.axis_y_tick_rotate))) / 180);\r\n }\r\n return (h +\r\n ($$.axis.getLabelPositionById(axisId).isInner ? 0 : 10) +\r\n (axisId === 'y2' ? -10 : 0));\r\n };\n\n ChartInternal.prototype.initBrush = function (scale) {\r\n var $$ = this, d3 = $$.d3;\r\n // TODO: dynamically change brushY/brushX according to axis_rotated.\r\n $$.brush = ($$.config.axis_rotated ? d3.brushY() : d3.brushX())\r\n .on('brush', function () {\r\n var event = d3.event.sourceEvent;\r\n if (event && event.type === 'zoom') {\r\n return;\r\n }\r\n $$.redrawForBrush();\r\n })\r\n .on('end', function () {\r\n var event = d3.event.sourceEvent;\r\n if (event && event.type === 'zoom') {\r\n return;\r\n }\r\n if ($$.brush.empty() && event && event.type !== 'end') {\r\n $$.brush.clear();\r\n }\r\n });\r\n $$.brush.updateExtent = function () {\r\n var range = this.scale.range(), extent;\r\n if ($$.config.axis_rotated) {\r\n extent = [\r\n [0, range[0]],\r\n [$$.width2, range[1]]\r\n ];\r\n }\r\n else {\r\n extent = [\r\n [range[0], 0],\r\n [range[1], $$.height2]\r\n ];\r\n }\r\n this.extent(extent);\r\n return this;\r\n };\r\n $$.brush.updateScale = function (scale) {\r\n this.scale = scale;\r\n return this;\r\n };\r\n $$.brush.update = function (scale) {\r\n this.updateScale(scale || $$.subX).updateExtent();\r\n $$.context.select('.' + CLASS.brush).call(this);\r\n };\r\n $$.brush.clear = function () {\r\n $$.context.select('.' + CLASS.brush).call($$.brush.move, null);\r\n };\r\n $$.brush.selection = function () {\r\n return d3.brushSelection($$.context.select('.' + CLASS.brush).node());\r\n };\r\n $$.brush.selectionAsValue = function (selectionAsValue, withTransition) {\r\n var selection, brush;\r\n if (selectionAsValue) {\r\n if ($$.context) {\r\n selection = [\r\n this.scale(selectionAsValue[0]),\r\n this.scale(selectionAsValue[1])\r\n ];\r\n brush = $$.context.select('.' + CLASS.brush);\r\n if (withTransition) {\r\n brush = brush.transition();\r\n }\r\n $$.brush.move(brush, selection);\r\n }\r\n return [];\r\n }\r\n selection = $$.brush.selection() || [0, 0];\r\n return [this.scale.invert(selection[0]), this.scale.invert(selection[1])];\r\n };\r\n $$.brush.empty = function () {\r\n var selection = $$.brush.selection();\r\n return !selection || selection[0] === selection[1];\r\n };\r\n return $$.brush.updateScale(scale);\r\n };\r\n ChartInternal.prototype.initSubchart = function () {\r\n var $$ = this, config = $$.config, context = ($$.context = $$.svg\r\n .append('g')\r\n .attr('transform', $$.getTranslate('context')));\r\n // set style\r\n context.style('visibility', 'visible');\r\n // Define g for chart area\r\n context\r\n .append('g')\r\n .attr('clip-path', $$.clipPathForSubchart)\r\n .attr('class', CLASS.chart);\r\n // Define g for bar chart area\r\n context\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartBars);\r\n // Define g for line chart area\r\n context\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartLines);\r\n // Add extent rect for Brush\r\n context\r\n .append('g')\r\n .attr('clip-path', $$.clipPath)\r\n .attr('class', CLASS.brush);\r\n // ATTENTION: This must be called AFTER chart added\r\n // Add Axis\r\n $$.axes.subx = context\r\n .append('g')\r\n .attr('class', CLASS.axisX)\r\n .attr('transform', $$.getTranslate('subx'))\r\n .attr('clip-path', config.axis_rotated ? '' : $$.clipPathForXAxis)\r\n .style('visibility', config.subchart_axis_x_show ? 'visible' : 'hidden');\r\n };\r\n ChartInternal.prototype.initSubchartBrush = function () {\r\n var $$ = this;\r\n // Add extent rect for Brush\r\n $$.initBrush($$.subX).updateExtent();\r\n $$.context.select('.' + CLASS.brush).call($$.brush);\r\n };\r\n ChartInternal.prototype.updateTargetsForSubchart = function (targets) {\r\n var $$ = this, context = $$.context, config = $$.config, contextLineEnter, contextLine, contextBarEnter, contextBar, classChartBar = $$.classChartBar.bind($$), classBars = $$.classBars.bind($$), classChartLine = $$.classChartLine.bind($$), classLines = $$.classLines.bind($$), classAreas = $$.classAreas.bind($$);\r\n //-- Bar --//\r\n contextBar = context\r\n .select('.' + CLASS.chartBars)\r\n .selectAll('.' + CLASS.chartBar)\r\n .data(targets);\r\n contextBarEnter = contextBar\r\n .enter()\r\n .append('g')\r\n .style('opacity', 0);\r\n contextBarEnter.merge(contextBar).attr('class', classChartBar);\r\n // Bars for each data\r\n contextBarEnter.append('g').attr('class', classBars);\r\n //-- Line --//\r\n contextLine = context\r\n .select('.' + CLASS.chartLines)\r\n .selectAll('.' + CLASS.chartLine)\r\n .data(targets);\r\n contextLineEnter = contextLine\r\n .enter()\r\n .append('g')\r\n .style('opacity', 0);\r\n contextLineEnter.merge(contextLine).attr('class', classChartLine);\r\n // Lines for each data\r\n contextLineEnter.append('g').attr('class', classLines);\r\n // Area\r\n contextLineEnter.append('g').attr('class', classAreas);\r\n //-- Brush --//\r\n context\r\n .selectAll('.' + CLASS.brush + ' rect')\r\n .attr(config.axis_rotated ? 'width' : 'height', config.axis_rotated ? $$.width2 : $$.height2);\r\n };\r\n ChartInternal.prototype.updateBarForSubchart = function (durationForExit) {\r\n var $$ = this;\r\n var contextBar = $$.context\r\n .selectAll('.' + CLASS.bars)\r\n .selectAll('.' + CLASS.bar)\r\n .data($$.barData.bind($$));\r\n var contextBarEnter = contextBar\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classBar.bind($$))\r\n .style('stroke', 'none')\r\n .style('fill', $$.color);\r\n contextBar\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0)\r\n .remove();\r\n $$.contextBar = contextBarEnter\r\n .merge(contextBar)\r\n .style('opacity', $$.initialOpacity.bind($$));\r\n };\r\n ChartInternal.prototype.redrawBarForSubchart = function (drawBarOnSub, withTransition, duration) {\r\n (withTransition\r\n ? this.contextBar.transition(Math.random().toString()).duration(duration)\r\n : this.contextBar)\r\n .attr('d', drawBarOnSub)\r\n .style('opacity', 1);\r\n };\r\n ChartInternal.prototype.updateLineForSubchart = function (durationForExit) {\r\n var $$ = this;\r\n var contextLine = $$.context\r\n .selectAll('.' + CLASS.lines)\r\n .selectAll('.' + CLASS.line)\r\n .data($$.lineData.bind($$));\r\n var contextLineEnter = contextLine\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classLine.bind($$))\r\n .style('stroke', $$.color);\r\n contextLine\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0)\r\n .remove();\r\n $$.contextLine = contextLineEnter\r\n .merge(contextLine)\r\n .style('opacity', $$.initialOpacity.bind($$));\r\n };\r\n ChartInternal.prototype.redrawLineForSubchart = function (drawLineOnSub, withTransition, duration) {\r\n (withTransition\r\n ? this.contextLine.transition(Math.random().toString()).duration(duration)\r\n : this.contextLine)\r\n .attr('d', drawLineOnSub)\r\n .style('opacity', 1);\r\n };\r\n ChartInternal.prototype.updateAreaForSubchart = function (durationForExit) {\r\n var $$ = this, d3 = $$.d3;\r\n var contextArea = $$.context\r\n .selectAll('.' + CLASS.areas)\r\n .selectAll('.' + CLASS.area)\r\n .data($$.lineData.bind($$));\r\n var contextAreaEnter = contextArea\r\n .enter()\r\n .append('path')\r\n .attr('class', $$.classArea.bind($$))\r\n .style('fill', $$.color)\r\n .style('opacity', function () {\r\n $$.orgAreaOpacity = +d3.select(this).style('opacity');\r\n return 0;\r\n });\r\n contextArea\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('opacity', 0)\r\n .remove();\r\n $$.contextArea = contextAreaEnter.merge(contextArea).style('opacity', 0);\r\n };\r\n ChartInternal.prototype.redrawAreaForSubchart = function (drawAreaOnSub, withTransition, duration) {\r\n (withTransition\r\n ? this.contextArea.transition(Math.random().toString()).duration(duration)\r\n : this.contextArea)\r\n .attr('d', drawAreaOnSub)\r\n .style('fill', this.color)\r\n .style('opacity', this.orgAreaOpacity);\r\n };\r\n ChartInternal.prototype.redrawSubchart = function (withSubchart, transitions, duration, durationForExit, areaIndices, barIndices, lineIndices) {\r\n var $$ = this, d3 = $$.d3, drawAreaOnSub, drawBarOnSub, drawLineOnSub;\r\n // reflect main chart to extent on subchart if zoomed\r\n if (d3.event && d3.event.type === 'zoom') {\r\n $$.brush.selectionAsValue($$.x.orgDomain());\r\n }\r\n // update subchart elements if needed\r\n if (withSubchart) {\r\n // extent rect\r\n if (!$$.brush.empty()) {\r\n $$.brush.selectionAsValue($$.x.orgDomain());\r\n }\r\n // setup drawer - MEMO: this must be called after axis updated\r\n drawAreaOnSub = $$.generateDrawArea(areaIndices, true);\r\n drawBarOnSub = $$.generateDrawBar(barIndices, true);\r\n drawLineOnSub = $$.generateDrawLine(lineIndices, true);\r\n $$.updateBarForSubchart(duration);\r\n $$.updateLineForSubchart(duration);\r\n $$.updateAreaForSubchart(duration);\r\n $$.redrawBarForSubchart(drawBarOnSub, duration, duration);\r\n $$.redrawLineForSubchart(drawLineOnSub, duration, duration);\r\n $$.redrawAreaForSubchart(drawAreaOnSub, duration, duration);\r\n }\r\n };\r\n ChartInternal.prototype.redrawForBrush = function () {\r\n var $$ = this, x = $$.x, d3 = $$.d3, s;\r\n $$.redraw({\r\n withTransition: false,\r\n withY: $$.config.zoom_rescale,\r\n withSubchart: false,\r\n withUpdateXDomain: true,\r\n withEventRect: false,\r\n withDimension: false\r\n });\r\n // update zoom transation binded to event rect\r\n s = d3.event.selection || $$.brush.scale.range();\r\n $$.main\r\n .select('.' + CLASS.eventRect)\r\n .call($$.zoom.transform, d3.zoomIdentity.scale($$.width / (s[1] - s[0])).translate(-s[0], 0));\r\n $$.config.subchart_onbrush.call($$.api, x.orgDomain());\r\n };\r\n ChartInternal.prototype.transformContext = function (withTransition, transitions) {\r\n var $$ = this, subXAxis;\r\n if (transitions && transitions.axisSubX) {\r\n subXAxis = transitions.axisSubX;\r\n }\r\n else {\r\n subXAxis = $$.context.select('.' + CLASS.axisX);\r\n if (withTransition) {\r\n subXAxis = subXAxis.transition();\r\n }\r\n }\r\n $$.context.attr('transform', $$.getTranslate('context'));\r\n subXAxis.attr('transform', $$.getTranslate('subx'));\r\n };\r\n ChartInternal.prototype.getDefaultSelection = function () {\r\n var $$ = this, config = $$.config, selection = isFunction(config.axis_x_selection)\r\n ? config.axis_x_selection($$.getXDomain($$.data.targets))\r\n : config.axis_x_selection;\r\n if ($$.isTimeSeries()) {\r\n selection = [$$.parseDate(selection[0]), $$.parseDate(selection[1])];\r\n }\r\n return selection;\r\n };\r\n ChartInternal.prototype.removeSubchart = function () {\r\n var $$ = this;\r\n $$.brush = null;\r\n $$.context.remove();\r\n $$.context = null;\r\n };\n\n ChartInternal.prototype.initText = function () {\r\n var $$ = this;\r\n $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.chartTexts);\r\n $$.mainText = $$.d3.selectAll([]);\r\n };\r\n ChartInternal.prototype.updateTargetsForText = function (targets) {\r\n var $$ = this, classChartText = $$.classChartText.bind($$), classTexts = $$.classTexts.bind($$), classFocus = $$.classFocus.bind($$);\r\n var mainText = $$.main\r\n .select('.' + CLASS.chartTexts)\r\n .selectAll('.' + CLASS.chartText)\r\n .data(targets);\r\n var mainTextEnter = mainText\r\n .enter()\r\n .append('g')\r\n .attr('class', classChartText)\r\n .style('opacity', 0)\r\n .style('pointer-events', 'none');\r\n mainTextEnter.append('g').attr('class', classTexts);\r\n mainTextEnter.merge(mainText).attr('class', function (d) {\r\n return classChartText(d) + classFocus(d);\r\n });\r\n };\r\n ChartInternal.prototype.updateText = function (xForText, yForText, durationForExit) {\r\n var $$ = this, config = $$.config, barOrLineData = $$.barOrLineData.bind($$), classText = $$.classText.bind($$);\r\n var mainText = $$.main\r\n .selectAll('.' + CLASS.texts)\r\n .selectAll('.' + CLASS.text)\r\n .data(barOrLineData);\r\n var mainTextEnter = mainText\r\n .enter()\r\n .append('text')\r\n .attr('class', classText)\r\n .attr('text-anchor', function (d) {\r\n return config.axis_rotated ? (d.value < 0 ? 'end' : 'start') : 'middle';\r\n })\r\n .style('stroke', 'none')\r\n .attr('x', xForText)\r\n .attr('y', yForText)\r\n .style('fill', function (d) {\r\n return $$.color(d);\r\n })\r\n .style('fill-opacity', 0);\r\n $$.mainText = mainTextEnter.merge(mainText).text(function (d, i, j) {\r\n return $$.dataLabelFormat(d.id)(d.value, d.id, i, j);\r\n });\r\n mainText\r\n .exit()\r\n .transition()\r\n .duration(durationForExit)\r\n .style('fill-opacity', 0)\r\n .remove();\r\n };\r\n ChartInternal.prototype.redrawText = function (xForText, yForText, forFlow, withTransition, transition) {\r\n return [\r\n (withTransition ? this.mainText.transition(transition) : this.mainText)\r\n .attr('x', xForText)\r\n .attr('y', yForText)\r\n .style('fill', this.color)\r\n .style('fill-opacity', forFlow ? 0 : this.opacityForText.bind(this))\r\n ];\r\n };\r\n ChartInternal.prototype.getTextRect = function (text, cls, element) {\r\n var dummy = this.d3\r\n .select('body')\r\n .append('div')\r\n .classed('c3', true), svg = dummy\r\n .append('svg')\r\n .style('visibility', 'hidden')\r\n .style('position', 'fixed')\r\n .style('top', 0)\r\n .style('left', 0), font = this.d3.select(element).style('font'), rect;\r\n svg\r\n .selectAll('.dummy')\r\n .data([text])\r\n .enter()\r\n .append('text')\r\n .classed(cls ? cls : '', true)\r\n .style('font', font)\r\n .text(text)\r\n .each(function () {\r\n rect = getBBox(this);\r\n });\r\n dummy.remove();\r\n return rect;\r\n };\r\n ChartInternal.prototype.generateXYForText = function (areaIndices, barIndices, lineIndices, forX) {\r\n var $$ = this, getAreaPoints = $$.generateGetAreaPoints(areaIndices, false), getBarPoints = $$.generateGetBarPoints(barIndices, false), getLinePoints = $$.generateGetLinePoints(lineIndices, false), getter = forX ? $$.getXForText : $$.getYForText;\r\n return function (d, i) {\r\n var getPoints = $$.isAreaType(d)\r\n ? getAreaPoints\r\n : $$.isBarType(d)\r\n ? getBarPoints\r\n : getLinePoints;\r\n return getter.call($$, getPoints(d, i), d, this);\r\n };\r\n };\r\n ChartInternal.prototype.getXForText = function (points, d, textElement) {\r\n var $$ = this, box = getBBox(textElement), xPos, padding;\r\n if ($$.config.axis_rotated) {\r\n padding = $$.isBarType(d) ? 4 : 6;\r\n xPos = points[2][1] + padding * (d.value < 0 ? -1 : 1);\r\n }\r\n else {\r\n xPos = $$.hasType('bar') ? (points[2][0] + points[0][0]) / 2 : points[0][0];\r\n }\r\n // show labels regardless of the domain if value is null\r\n if (d.value === null) {\r\n if (xPos > $$.width) {\r\n xPos = $$.width - box.width;\r\n }\r\n else if (xPos < 0) {\r\n xPos = 4;\r\n }\r\n }\r\n return xPos;\r\n };\r\n ChartInternal.prototype.getYForText = function (points, d, textElement) {\r\n var $$ = this, box = getBBox(textElement), yPos;\r\n if ($$.config.axis_rotated) {\r\n yPos = (points[0][0] + points[2][0] + box.height * 0.6) / 2;\r\n }\r\n else {\r\n yPos = points[2][1];\r\n if (d.value < 0 || (d.value === 0 && !$$.hasPositiveValue)) {\r\n yPos += box.height;\r\n if ($$.isBarType(d) && $$.isSafari()) {\r\n yPos -= 3;\r\n }\r\n else if (!$$.isBarType(d) && $$.isChrome()) {\r\n yPos += 3;\r\n }\r\n }\r\n else {\r\n yPos += $$.isBarType(d) ? -3 : -6;\r\n }\r\n }\r\n // show labels regardless of the domain if value is null\r\n if (d.value === null && !$$.config.axis_rotated) {\r\n if (yPos < box.height) {\r\n yPos = box.height;\r\n }\r\n else if (yPos > this.height) {\r\n yPos = this.height - 4;\r\n }\r\n }\r\n return yPos;\r\n };\n\n ChartInternal.prototype.initTitle = function () {\r\n var $$ = this;\r\n $$.title = $$.svg\r\n .append('text')\r\n .text($$.config.title_text)\r\n .attr('class', $$.CLASS.title);\r\n };\r\n ChartInternal.prototype.redrawTitle = function () {\r\n var $$ = this;\r\n $$.title.attr('x', $$.xForTitle.bind($$)).attr('y', $$.yForTitle.bind($$));\r\n };\r\n ChartInternal.prototype.xForTitle = function () {\r\n var $$ = this, config = $$.config, position = config.title_position || 'left', x;\r\n if (position.indexOf('right') >= 0) {\r\n x =\r\n $$.currentWidth -\r\n $$.getTextRect($$.title.node().textContent, $$.CLASS.title, $$.title.node()).width -\r\n config.title_padding.right;\r\n }\r\n else if (position.indexOf('center') >= 0) {\r\n x = Math.max(($$.currentWidth -\r\n $$.getTextRect($$.title.node().textContent, $$.CLASS.title, $$.title.node()).width) /\r\n 2, 0);\r\n }\r\n else {\r\n // left\r\n x = config.title_padding.left;\r\n }\r\n return x;\r\n };\r\n ChartInternal.prototype.yForTitle = function () {\r\n var $$ = this;\r\n return ($$.config.title_padding.top +\r\n $$.getTextRect($$.title.node().textContent, $$.CLASS.title, $$.title.node())\r\n .height);\r\n };\r\n ChartInternal.prototype.getTitlePadding = function () {\r\n var $$ = this;\r\n return $$.yForTitle() + $$.config.title_padding.bottom;\r\n };\n\n function powerOfTen(d) {\r\n return d / Math.pow(10, Math.ceil(Math.log(d) / Math.LN10 - 1e-12)) === 1;\r\n }\r\n ChartInternal.prototype.drawColorScale = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config, target = $$.data.targets[0], barWidth, barHeight, axis, points, legendAxis, axisScale, inverseScale, height;\r\n barWidth = !isNaN(config.stanford_scaleWidth)\r\n ? config.stanford_scaleWidth\r\n : 20;\r\n barHeight = 5;\r\n if (barHeight < 0 || barWidth < 0) {\r\n throw Error(\"Colorscale's barheight and barwidth must be greater than 0.\");\r\n }\r\n height =\r\n $$.height - config.stanford_padding.bottom - config.stanford_padding.top;\r\n points = d3.range(config.stanford_padding.bottom, height, barHeight);\r\n inverseScale = d3\r\n .scaleSequential(target.colors)\r\n .domain([points[points.length - 1], points[0]]);\r\n if ($$.colorScale) {\r\n $$.colorScale.remove();\r\n }\r\n $$.colorScale = $$.svg\r\n .append('g')\r\n .attr('width', 50)\r\n .attr('height', height)\r\n .attr('class', CLASS.colorScale);\r\n $$.colorScale\r\n .append('g')\r\n .attr('transform', \"translate(0, \" + config.stanford_padding.top + \")\")\r\n .selectAll('bars')\r\n .data(points)\r\n .enter()\r\n .append('rect')\r\n .attr('y', function (d, i) { return i * barHeight; })\r\n .attr('x', 0)\r\n .attr('width', barWidth)\r\n .attr('height', barHeight)\r\n .attr('fill', function (d) {\r\n return inverseScale(d);\r\n });\r\n // Legend Axis\r\n axisScale = d3\r\n .scaleLog()\r\n .domain([target.minEpochs, target.maxEpochs])\r\n .range([\r\n points[0] +\r\n config.stanford_padding.top +\r\n points[points.length - 1] +\r\n barHeight -\r\n 1,\r\n points[0] + config.stanford_padding.top\r\n ]);\r\n legendAxis = d3.axisRight(axisScale);\r\n if (config.stanford_scaleFormat === 'pow10') {\r\n legendAxis.tickValues([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]);\r\n }\r\n else if (isFunction(config.stanford_scaleFormat)) {\r\n legendAxis.tickFormat(config.stanford_scaleFormat);\r\n }\r\n else {\r\n legendAxis.tickFormat(d3.format('d'));\r\n }\r\n if (isFunction(config.stanford_scaleValues)) {\r\n legendAxis.tickValues(config.stanford_scaleValues(target.minEpochs, target.maxEpochs));\r\n }\r\n // Draw Axis\r\n axis = $$.colorScale\r\n .append('g')\r\n .attr('class', 'legend axis')\r\n .attr('transform', \"translate(\" + barWidth + \",0)\")\r\n .call(legendAxis);\r\n if (config.stanford_scaleFormat === 'pow10') {\r\n axis\r\n .selectAll('.tick text')\r\n .text(null)\r\n .filter(powerOfTen)\r\n .text(10)\r\n .append('tspan')\r\n .attr('dy', '-.7em') // https://bl.ocks.org/mbostock/6738229\r\n .text(function (d) {\r\n return Math.round(Math.log(d) / Math.LN10);\r\n });\r\n }\r\n $$.colorScale.attr('transform', \"translate(\" + ($$.currentWidth - $$.xForColorScale()) + \", 0)\");\r\n };\r\n ChartInternal.prototype.xForColorScale = function () {\r\n var $$ = this;\r\n return $$.config.stanford_padding.right + getBBox($$.colorScale.node()).width;\r\n };\r\n ChartInternal.prototype.getColorScalePadding = function () {\r\n var $$ = this;\r\n return $$.xForColorScale() + $$.config.stanford_padding.left + 20;\r\n };\n\n ChartInternal.prototype.isStanfordGraphType = function () {\r\n var $$ = this;\r\n return $$.config.data_type === 'stanford';\r\n };\r\n ChartInternal.prototype.initStanfordData = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config, target = $$.data.targets[0], epochs, maxEpochs, minEpochs;\r\n // Make larger values appear on top\r\n target.values.sort(compareEpochs);\r\n // Get array of epochs\r\n epochs = target.values.map(function (a) { return a.epochs; });\r\n minEpochs = !isNaN(config.stanford_scaleMin)\r\n ? config.stanford_scaleMin\r\n : d3.min(epochs);\r\n maxEpochs = !isNaN(config.stanford_scaleMax)\r\n ? config.stanford_scaleMax\r\n : d3.max(epochs);\r\n if (minEpochs > maxEpochs) {\r\n throw Error('Number of minEpochs has to be smaller than maxEpochs');\r\n }\r\n target.colors = isFunction(config.stanford_colors)\r\n ? config.stanford_colors\r\n : d3.interpolateHslLong(d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5));\r\n target.colorscale = d3\r\n .scaleSequentialLog(target.colors)\r\n .domain([minEpochs, maxEpochs]);\r\n target.minEpochs = minEpochs;\r\n target.maxEpochs = maxEpochs;\r\n };\r\n ChartInternal.prototype.getStanfordPointColor = function (d) {\r\n var $$ = this, target = $$.data.targets[0];\r\n return target.colorscale(d.epochs);\r\n };\r\n // http://jsfiddle.net/Xotic750/KtzLq/\r\n ChartInternal.prototype.getCentroid = function (points) {\r\n var area = getRegionArea(points);\r\n var x = 0, y = 0, i, j, f, point1, point2;\r\n for (i = 0, j = points.length - 1; i < points.length; j = i, i += 1) {\r\n point1 = points[i];\r\n point2 = points[j];\r\n f = point1.x * point2.y - point2.x * point1.y;\r\n x += (point1.x + point2.x) * f;\r\n y += (point1.y + point2.y) * f;\r\n }\r\n f = area * 6;\r\n return {\r\n x: x / f,\r\n y: y / f\r\n };\r\n };\r\n ChartInternal.prototype.getStanfordTooltipTitle = function (d) {\r\n var $$ = this, labelX = $$.axis.getLabelText('x'), labelY = $$.axis.getLabelText('y');\r\n return \"\\n \" + (labelX ? sanitise(labelX) : 'x') + \"\" + d.x + \"\\n \" + (labelY ? sanitise(labelY) : 'y') + \"\" + d.value + \"\\n \";\r\n };\r\n ChartInternal.prototype.countEpochsInRegion = function (region) {\r\n var $$ = this, target = $$.data.targets[0], total, count;\r\n total = target.values.reduce(function (accumulator, currentValue) { return accumulator + Number(currentValue.epochs); }, 0);\r\n count = target.values.reduce(function (accumulator, currentValue) {\r\n if (pointInRegion(currentValue, region)) {\r\n return accumulator + Number(currentValue.epochs);\r\n }\r\n return accumulator;\r\n }, 0);\r\n return {\r\n value: count,\r\n percentage: count !== 0 ? ((count / total) * 100).toFixed(1) : 0\r\n };\r\n };\r\n var getRegionArea = function (points) {\r\n // thanks to: https://stackoverflow.com/questions/16282330/find-centerpoint-of-polygon-in-javascript\r\n var area = 0, i, j, point1, point2;\r\n for (i = 0, j = points.length - 1; i < points.length; j = i, i += 1) {\r\n point1 = points[i];\r\n point2 = points[j];\r\n area += point1.x * point2.y;\r\n area -= point1.y * point2.x;\r\n }\r\n area /= 2;\r\n return area;\r\n };\r\n var pointInRegion = function (point, region) {\r\n // thanks to: http://bl.ocks.org/bycoffe/5575904\r\n // ray-casting algorithm based on\r\n // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\r\n var xi, yi, yj, xj, intersect, x = point.x, y = point.value, inside = false;\r\n for (var i = 0, j = region.length - 1; i < region.length; j = i++) {\r\n xi = region[i].x;\r\n yi = region[i].y;\r\n xj = region[j].x;\r\n yj = region[j].y;\r\n intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;\r\n if (intersect) {\r\n inside = !inside;\r\n }\r\n }\r\n return inside;\r\n };\r\n var compareEpochs = function (a, b) {\r\n if (a.epochs < b.epochs) {\r\n return -1;\r\n }\r\n if (a.epochs > b.epochs) {\r\n return 1;\r\n }\r\n return 0;\r\n };\n\n ChartInternal.prototype.initStanfordElements = function () {\r\n var $$ = this;\r\n // Avoid blocking eventRect\r\n $$.stanfordElements = $$.main\r\n .select('.' + CLASS.chart)\r\n .append('g')\r\n .attr('class', CLASS.stanfordElements);\r\n $$.stanfordElements.append('g').attr('class', CLASS.stanfordLines);\r\n $$.stanfordElements.append('g').attr('class', CLASS.stanfordTexts);\r\n $$.stanfordElements.append('g').attr('class', CLASS.stanfordRegions);\r\n };\r\n ChartInternal.prototype.updateStanfordElements = function (duration) {\r\n var $$ = this, main = $$.main, config = $$.config, stanfordLine, stanfordLineEnter, stanfordRegion, stanfordRegionEnter, stanfordText, stanfordTextEnter, xvCustom = $$.xvCustom.bind($$), yvCustom = $$.yvCustom.bind($$), countPointsInRegion = $$.countEpochsInRegion.bind($$);\r\n // Stanford-Lines\r\n stanfordLine = main\r\n .select('.' + CLASS.stanfordLines)\r\n .style('shape-rendering', 'geometricprecision')\r\n .selectAll('.' + CLASS.stanfordLine)\r\n .data(config.stanford_lines);\r\n // enter\r\n stanfordLineEnter = stanfordLine\r\n .enter()\r\n .append('g')\r\n .attr('class', function (d) {\r\n return CLASS.stanfordLine + (d['class'] ? ' ' + d['class'] : '');\r\n });\r\n stanfordLineEnter\r\n .append('line')\r\n .attr('x1', function (d) {\r\n return config.axis_rotated ? yvCustom(d, 'value_y1') : xvCustom(d, 'value_x1');\r\n })\r\n .attr('x2', function (d) {\r\n return config.axis_rotated ? yvCustom(d, 'value_y2') : xvCustom(d, 'value_x2');\r\n })\r\n .attr('y1', function (d) {\r\n return config.axis_rotated ? xvCustom(d, 'value_x1') : yvCustom(d, 'value_y1');\r\n })\r\n .attr('y2', function (d) {\r\n return config.axis_rotated ? xvCustom(d, 'value_x2') : yvCustom(d, 'value_y2');\r\n })\r\n .style('opacity', 0);\r\n // update\r\n $$.stanfordLines = stanfordLineEnter.merge(stanfordLine);\r\n $$.stanfordLines\r\n .select('line')\r\n .transition()\r\n .duration(duration)\r\n .attr('x1', function (d) {\r\n return config.axis_rotated ? yvCustom(d, 'value_y1') : xvCustom(d, 'value_x1');\r\n })\r\n .attr('x2', function (d) {\r\n return config.axis_rotated ? yvCustom(d, 'value_y2') : xvCustom(d, 'value_x2');\r\n })\r\n .attr('y1', function (d) {\r\n return config.axis_rotated ? xvCustom(d, 'value_x1') : yvCustom(d, 'value_y1');\r\n })\r\n .attr('y2', function (d) {\r\n return config.axis_rotated ? xvCustom(d, 'value_x2') : yvCustom(d, 'value_y2');\r\n })\r\n .style('opacity', 1);\r\n // exit\r\n stanfordLine\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n // Stanford-Text\r\n stanfordText = main\r\n .select('.' + CLASS.stanfordTexts)\r\n .selectAll('.' + CLASS.stanfordText)\r\n .data(config.stanford_texts);\r\n // enter\r\n stanfordTextEnter = stanfordText\r\n .enter()\r\n .append('g')\r\n .attr('class', function (d) {\r\n return CLASS.stanfordText + (d['class'] ? ' ' + d['class'] : '');\r\n });\r\n stanfordTextEnter\r\n .append('text')\r\n .attr('x', function (d) { return (config.axis_rotated ? yvCustom(d, 'y') : xvCustom(d, 'x')); })\r\n .attr('y', function (d) { return (config.axis_rotated ? xvCustom(d, 'x') : yvCustom(d, 'y')); })\r\n .style('opacity', 0);\r\n // update\r\n $$.stanfordTexts = stanfordTextEnter.merge(stanfordText);\r\n $$.stanfordTexts\r\n .select('text')\r\n .transition()\r\n .duration(duration)\r\n .attr('x', function (d) { return (config.axis_rotated ? yvCustom(d, 'y') : xvCustom(d, 'x')); })\r\n .attr('y', function (d) { return (config.axis_rotated ? xvCustom(d, 'x') : yvCustom(d, 'y')); })\r\n .text(function (d) {\r\n return d.content;\r\n })\r\n .style('opacity', 1);\r\n // exit\r\n stanfordText\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n // Stanford-Regions\r\n stanfordRegion = main\r\n .select('.' + CLASS.stanfordRegions)\r\n .selectAll('.' + CLASS.stanfordRegion)\r\n .data(config.stanford_regions);\r\n // enter\r\n stanfordRegionEnter = stanfordRegion\r\n .enter()\r\n .append('g')\r\n .attr('class', function (d) {\r\n return CLASS.stanfordRegion + (d['class'] ? ' ' + d['class'] : '');\r\n });\r\n stanfordRegionEnter\r\n .append('polygon')\r\n .attr('points', function (d) {\r\n return d.points\r\n .map(function (value) {\r\n return [\r\n config.axis_rotated ? yvCustom(value, 'y') : xvCustom(value, 'x'),\r\n config.axis_rotated ? xvCustom(value, 'x') : yvCustom(value, 'y')\r\n ].join(',');\r\n })\r\n .join(' ');\r\n })\r\n .style('opacity', 0);\r\n stanfordRegionEnter\r\n .append('text')\r\n .attr('x', function (d) { return $$.getCentroid(d.points).x; })\r\n .attr('y', function (d) { return $$.getCentroid(d.points).y; })\r\n .style('opacity', 0);\r\n // update\r\n $$.stanfordRegions = stanfordRegionEnter.merge(stanfordRegion);\r\n $$.stanfordRegions\r\n .select('polygon')\r\n .transition()\r\n .duration(duration)\r\n .attr('points', function (d) {\r\n return d.points\r\n .map(function (value) {\r\n return [\r\n config.axis_rotated ? yvCustom(value, 'y') : xvCustom(value, 'x'),\r\n config.axis_rotated ? xvCustom(value, 'x') : yvCustom(value, 'y')\r\n ].join(',');\r\n })\r\n .join(' ');\r\n })\r\n .style('opacity', function (d) {\r\n return d.opacity ? d.opacity : 0.2;\r\n });\r\n $$.stanfordRegions\r\n .select('text')\r\n .transition()\r\n .duration(duration)\r\n .attr('x', function (d) {\r\n return config.axis_rotated\r\n ? yvCustom($$.getCentroid(d.points), 'y')\r\n : xvCustom($$.getCentroid(d.points), 'x');\r\n })\r\n .attr('y', function (d) {\r\n return config.axis_rotated\r\n ? xvCustom($$.getCentroid(d.points), 'x')\r\n : yvCustom($$.getCentroid(d.points), 'y');\r\n })\r\n .text(function (d) {\r\n if (d.text) {\r\n var value, percentage, temp;\r\n if ($$.isStanfordGraphType()) {\r\n temp = countPointsInRegion(d.points);\r\n value = temp.value;\r\n percentage = temp.percentage;\r\n }\r\n return d.text(value, percentage);\r\n }\r\n return '';\r\n })\r\n .attr('text-anchor', 'middle')\r\n .attr('dominant-baseline', 'middle')\r\n .style('opacity', 1);\r\n // exit\r\n stanfordRegion\r\n .exit()\r\n .transition()\r\n .duration(duration)\r\n .style('opacity', 0)\r\n .remove();\r\n };\n\n ChartInternal.prototype.initTooltip = function () {\r\n var $$ = this, config = $$.config, i;\r\n $$.tooltip = $$.selectChart\r\n .style('position', 'relative')\r\n .append('div')\r\n .attr('class', CLASS.tooltipContainer)\r\n .style('position', 'absolute')\r\n .style('pointer-events', 'none')\r\n .style('display', 'none');\r\n // Show tooltip if needed\r\n if (config.tooltip_init_show) {\r\n if ($$.isTimeSeries() && isString(config.tooltip_init_x)) {\r\n config.tooltip_init_x = $$.parseDate(config.tooltip_init_x);\r\n for (i = 0; i < $$.data.targets[0].values.length; i++) {\r\n if ($$.data.targets[0].values[i].x - config.tooltip_init_x === 0) {\r\n break;\r\n }\r\n }\r\n config.tooltip_init_x = i;\r\n }\r\n $$.tooltip.html(config.tooltip_contents.call($$, $$.data.targets.map(function (d) {\r\n return $$.addName(d.values[config.tooltip_init_x]);\r\n }), $$.axis.getXAxisTickFormat(), $$.getYFormat($$.hasArcType()), $$.color));\r\n $$.tooltip\r\n .style('top', config.tooltip_init_position.top)\r\n .style('left', config.tooltip_init_position.left)\r\n .style('display', 'block');\r\n }\r\n };\r\n ChartInternal.prototype.getTooltipSortFunction = function () {\r\n var $$ = this, config = $$.config;\r\n if (config.data_groups.length === 0 || config.tooltip_order !== undefined) {\r\n // if data are not grouped or if an order is specified\r\n // for the tooltip values we sort them by their values\r\n var order = config.tooltip_order;\r\n if (order === undefined) {\r\n order = config.data_order;\r\n }\r\n var valueOf = function (obj) {\r\n return obj ? obj.value : null;\r\n };\r\n // if data are not grouped, we sort them by their value\r\n if (isString(order) && order.toLowerCase() === 'asc') {\r\n return function (a, b) {\r\n return valueOf(a) - valueOf(b);\r\n };\r\n }\r\n else if (isString(order) && order.toLowerCase() === 'desc') {\r\n return function (a, b) {\r\n return valueOf(b) - valueOf(a);\r\n };\r\n }\r\n else if (isFunction(order)) {\r\n // if the function is from data_order we need\r\n // to wrap the returned function in order to format\r\n // the sorted value to the expected format\r\n var sortFunction = order;\r\n if (config.tooltip_order === undefined) {\r\n sortFunction = function (a, b) {\r\n return order(a\r\n ? {\r\n id: a.id,\r\n values: [a]\r\n }\r\n : null, b\r\n ? {\r\n id: b.id,\r\n values: [b]\r\n }\r\n : null);\r\n };\r\n }\r\n return sortFunction;\r\n }\r\n else if (isArray(order)) {\r\n return function (a, b) {\r\n return order.indexOf(a.id) - order.indexOf(b.id);\r\n };\r\n }\r\n }\r\n else {\r\n // if data are grouped, we follow the order of grouped targets\r\n var ids = $$.orderTargets($$.data.targets).map(function (i) {\r\n return i.id;\r\n });\r\n // if it was either asc or desc we need to invert the order\r\n // returned by orderTargets\r\n if ($$.isOrderAsc() || $$.isOrderDesc()) {\r\n ids = ids.reverse();\r\n }\r\n return function (a, b) {\r\n return ids.indexOf(a.id) - ids.indexOf(b.id);\r\n };\r\n }\r\n };\r\n ChartInternal.prototype.getTooltipContent = function (d, defaultTitleFormat, defaultValueFormat, color) {\r\n var $$ = this, config = $$.config, titleFormat = config.tooltip_format_title || defaultTitleFormat, nameFormat = config.tooltip_format_name ||\r\n function (name) {\r\n return name;\r\n }, text, i, title, value, name, bgcolor;\r\n var valueFormat = config.tooltip_format_value;\r\n if (!valueFormat) {\r\n valueFormat = $$.isTargetNormalized(d.id)\r\n ? function (v, ratio) { return (ratio * 100).toFixed(2) + \"%\"; }\r\n : defaultValueFormat;\r\n }\r\n var tooltipSortFunction = this.getTooltipSortFunction();\r\n if (tooltipSortFunction) {\r\n d.sort(tooltipSortFunction);\r\n }\r\n for (i = 0; i < d.length; i++) {\r\n if (!(d[i] && (d[i].value || d[i].value === 0))) {\r\n continue;\r\n }\r\n if ($$.isStanfordGraphType()) {\r\n // Custom tooltip for stanford plots\r\n if (!text) {\r\n title = $$.getStanfordTooltipTitle(d[i]);\r\n text = \"\" + title;\r\n }\r\n bgcolor = $$.getStanfordPointColor(d[i]);\r\n name = sanitise(config.data_epochs); // Epochs key name\r\n value = d[i].epochs;\r\n }\r\n else {\r\n // Regular tooltip\r\n if (!text) {\r\n title = sanitise(titleFormat ? titleFormat(d[i].x, d[i].index) : d[i].x);\r\n text =\r\n \"
\" +\r\n (title || title === 0\r\n ? \"'\r\n : '');\r\n }\r\n value = sanitise(valueFormat(d[i].value, d[i].ratio, d[i].id, d[i].index, d));\r\n if (value !== undefined) {\r\n // Skip elements when their name is set to null\r\n if (d[i].name === null) {\r\n continue;\r\n }\r\n name = sanitise(nameFormat(d[i].name, d[i].ratio, d[i].id, d[i].index));\r\n bgcolor = $$.levelColor ? $$.levelColor(d[i].value) : color(d[i].id);\r\n }\r\n }\r\n if (value !== undefined) {\r\n text +=\r\n \"\";\r\n text +=\r\n \"';\r\n text += \"';\r\n text += '';\r\n }\r\n }\r\n return text + '
\" + title + '
\" +\r\n name +\r\n '\" + value + '
';\r\n };\r\n ChartInternal.prototype.tooltipPosition = function (dataToShow, tWidth, tHeight, element) {\r\n var $$ = this, config = $$.config, d3 = $$.d3;\r\n var svgLeft, tooltipLeft, tooltipRight, tooltipTop, chartRight;\r\n var forArc = $$.hasArcType(), mouse = d3.mouse(element);\r\n // Determin tooltip position\r\n if (forArc) {\r\n tooltipLeft =\r\n ($$.width - ($$.isLegendRight ? $$.getLegendWidth() : 0)) / 2 + mouse[0];\r\n tooltipTop =\r\n ($$.hasType('gauge') ? $$.height : $$.height / 2) + mouse[1] + 20;\r\n }\r\n else {\r\n svgLeft = $$.getSvgLeft(true);\r\n if (config.axis_rotated) {\r\n tooltipLeft = svgLeft + mouse[0] + 100;\r\n tooltipRight = tooltipLeft + tWidth;\r\n chartRight = $$.currentWidth - $$.getCurrentPaddingRight();\r\n tooltipTop = $$.x(dataToShow[0].x) + 20;\r\n }\r\n else {\r\n tooltipLeft =\r\n svgLeft + $$.getCurrentPaddingLeft(true) + $$.x(dataToShow[0].x) + 20;\r\n tooltipRight = tooltipLeft + tWidth;\r\n chartRight = svgLeft + $$.currentWidth - $$.getCurrentPaddingRight();\r\n tooltipTop = mouse[1] + 15;\r\n }\r\n if (tooltipRight > chartRight) {\r\n // 20 is needed for Firefox to keep tooltip width\r\n tooltipLeft -= tooltipRight - chartRight + 20;\r\n }\r\n if (tooltipTop + tHeight > $$.currentHeight) {\r\n tooltipTop -= tHeight + 30;\r\n }\r\n }\r\n if (tooltipTop < 0) {\r\n tooltipTop = 0;\r\n }\r\n return {\r\n top: tooltipTop,\r\n left: tooltipLeft\r\n };\r\n };\r\n ChartInternal.prototype.showTooltip = function (selectedData, element) {\r\n var $$ = this, config = $$.config;\r\n var tWidth, tHeight, position;\r\n var forArc = $$.hasArcType(), dataToShow = selectedData.filter(function (d) {\r\n return d && isValue(d.value);\r\n }), positionFunction = config.tooltip_position || ChartInternal.prototype.tooltipPosition;\r\n if (dataToShow.length === 0 || !config.tooltip_show) {\r\n $$.hideTooltip();\r\n return;\r\n }\r\n $$.tooltip\r\n .html(config.tooltip_contents.call($$, selectedData, $$.axis.getXAxisTickFormat(), $$.getYFormat(forArc), $$.color))\r\n .style('display', 'block');\r\n // Get tooltip dimensions\r\n tWidth = $$.tooltip.property('offsetWidth');\r\n tHeight = $$.tooltip.property('offsetHeight');\r\n position = positionFunction.call(this, dataToShow, tWidth, tHeight, element);\r\n // Set tooltip\r\n $$.tooltip\r\n .style('top', position.top + 'px')\r\n .style('left', position.left + 'px');\r\n };\r\n ChartInternal.prototype.hideTooltip = function () {\r\n this.tooltip.style('display', 'none');\r\n };\n\n ChartInternal.prototype.setTargetType = function (targetIds, type) {\r\n var $$ = this, config = $$.config;\r\n $$.mapToTargetIds(targetIds).forEach(function (id) {\r\n $$.withoutFadeIn[id] = type === config.data_types[id];\r\n config.data_types[id] = type;\r\n });\r\n if (!targetIds) {\r\n config.data_type = type;\r\n }\r\n };\r\n ChartInternal.prototype.hasType = function (type, targets) {\r\n var $$ = this, types = $$.config.data_types, has = false;\r\n targets = targets || $$.data.targets;\r\n if (targets && targets.length) {\r\n targets.forEach(function (target) {\r\n var t = types[target.id];\r\n if ((t && t.indexOf(type) >= 0) || (!t && type === 'line')) {\r\n has = true;\r\n }\r\n });\r\n }\r\n else if (Object.keys(types).length) {\r\n Object.keys(types).forEach(function (id) {\r\n if (types[id] === type) {\r\n has = true;\r\n }\r\n });\r\n }\r\n else {\r\n has = $$.config.data_type === type;\r\n }\r\n return has;\r\n };\r\n ChartInternal.prototype.hasArcType = function (targets) {\r\n return (this.hasType('pie', targets) ||\r\n this.hasType('donut', targets) ||\r\n this.hasType('gauge', targets));\r\n };\r\n ChartInternal.prototype.isLineType = function (d) {\r\n var config = this.config, id = isString(d) ? d : d.id;\r\n return (!config.data_types[id] ||\r\n ['line', 'spline', 'area', 'area-spline', 'step', 'area-step'].indexOf(config.data_types[id]) >= 0);\r\n };\r\n ChartInternal.prototype.isStepType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return ['step', 'area-step'].indexOf(this.config.data_types[id]) >= 0;\r\n };\r\n ChartInternal.prototype.isSplineType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return ['spline', 'area-spline'].indexOf(this.config.data_types[id]) >= 0;\r\n };\r\n ChartInternal.prototype.isAreaType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return (['area', 'area-spline', 'area-step'].indexOf(this.config.data_types[id]) >=\r\n 0);\r\n };\r\n ChartInternal.prototype.isBarType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'bar';\r\n };\r\n ChartInternal.prototype.isScatterType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'scatter';\r\n };\r\n ChartInternal.prototype.isStanfordType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'stanford';\r\n };\r\n ChartInternal.prototype.isPieType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'pie';\r\n };\r\n ChartInternal.prototype.isGaugeType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'gauge';\r\n };\r\n ChartInternal.prototype.isDonutType = function (d) {\r\n var id = isString(d) ? d : d.id;\r\n return this.config.data_types[id] === 'donut';\r\n };\r\n ChartInternal.prototype.isArcType = function (d) {\r\n return this.isPieType(d) || this.isDonutType(d) || this.isGaugeType(d);\r\n };\r\n ChartInternal.prototype.lineData = function (d) {\r\n return this.isLineType(d) ? [d] : [];\r\n };\r\n ChartInternal.prototype.arcData = function (d) {\r\n return this.isArcType(d.data) ? [d] : [];\r\n };\r\n /* not used\r\n function scatterData(d) {\r\n return isScatterType(d) ? d.values : [];\r\n }\r\n */\r\n ChartInternal.prototype.barData = function (d) {\r\n return this.isBarType(d) ? d.values : [];\r\n };\r\n ChartInternal.prototype.lineOrScatterOrStanfordData = function (d) {\r\n return this.isLineType(d) || this.isScatterType(d) || this.isStanfordType(d)\r\n ? d.values\r\n : [];\r\n };\r\n ChartInternal.prototype.barOrLineData = function (d) {\r\n return this.isBarType(d) || this.isLineType(d) ? d.values : [];\r\n };\n\n ChartInternal.prototype.isSafari = function () {\r\n var ua = window.navigator.userAgent;\r\n return ua.indexOf('Safari') >= 0 && ua.indexOf('Chrome') < 0;\r\n };\r\n ChartInternal.prototype.isChrome = function () {\r\n var ua = window.navigator.userAgent;\r\n return ua.indexOf('Chrome') >= 0;\r\n };\n\n ChartInternal.prototype.initZoom = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config, startEvent;\r\n $$.zoom = d3\r\n .zoom()\r\n .on('start', function () {\r\n if (config.zoom_type !== 'scroll') {\r\n return;\r\n }\r\n var e = d3.event.sourceEvent;\r\n if (e && e.type === 'brush') {\r\n return;\r\n }\r\n startEvent = e;\r\n config.zoom_onzoomstart.call($$.api, e);\r\n })\r\n .on('zoom', function () {\r\n if (config.zoom_type !== 'scroll') {\r\n return;\r\n }\r\n var e = d3.event.sourceEvent;\r\n if (e && e.type === 'brush') {\r\n return;\r\n }\r\n $$.redrawForZoom();\r\n config.zoom_onzoom.call($$.api, $$.x.orgDomain());\r\n })\r\n .on('end', function () {\r\n if (config.zoom_type !== 'scroll') {\r\n return;\r\n }\r\n var e = d3.event.sourceEvent;\r\n if (e && e.type === 'brush') {\r\n return;\r\n }\r\n // if click, do nothing. otherwise, click interaction will be canceled.\r\n if (e &&\r\n startEvent.clientX === e.clientX &&\r\n startEvent.clientY === e.clientY) {\r\n return;\r\n }\r\n config.zoom_onzoomend.call($$.api, $$.x.orgDomain());\r\n });\r\n $$.zoom.updateDomain = function () {\r\n if (d3.event && d3.event.transform) {\r\n if (config.axis_rotated && config.zoom_type === 'scroll' && d3.event.sourceEvent.type === 'mousemove') {\r\n // we're moving the mouse in a rotated chart with zoom = \"scroll\", so we need rescaleY (i.e. vertical)\r\n $$.x.domain(d3.event.transform.rescaleY($$.subX).domain());\r\n }\r\n else {\r\n $$.x.domain(d3.event.transform.rescaleX($$.subX).domain());\r\n }\r\n }\r\n return this;\r\n };\r\n $$.zoom.updateExtent = function () {\r\n this.scaleExtent([1, Infinity])\r\n .translateExtent([\r\n [0, 0],\r\n [$$.width, $$.height]\r\n ])\r\n .extent([\r\n [0, 0],\r\n [$$.width, $$.height]\r\n ]);\r\n return this;\r\n };\r\n $$.zoom.update = function () {\r\n return this.updateExtent().updateDomain();\r\n };\r\n return $$.zoom.updateExtent();\r\n };\r\n ChartInternal.prototype.zoomTransform = function (range) {\r\n var $$ = this, s = [$$.x(range[0]), $$.x(range[1])];\r\n return $$.d3.zoomIdentity.scale($$.width / (s[1] - s[0])).translate(-s[0], 0);\r\n };\r\n ChartInternal.prototype.initDragZoom = function () {\r\n var $$ = this;\r\n var d3 = $$.d3;\r\n var config = $$.config;\r\n var context = ($$.context = $$.svg);\r\n var brushXPos = $$.margin.left + 20.5;\r\n var brushYPos = $$.margin.top + 0.5;\r\n if (!(config.zoom_type === 'drag' && config.zoom_enabled)) {\r\n return;\r\n }\r\n var getZoomedDomain = function (selection) {\r\n return selection && selection.map(function (x) { return $$.x.invert(x); });\r\n };\r\n var brush = ($$.dragZoomBrush = d3\r\n .brushX()\r\n .on('start', function () {\r\n $$.api.unzoom();\r\n $$.svg.select('.' + CLASS.dragZoom).classed('disabled', false);\r\n config.zoom_onzoomstart.call($$.api, d3.event.sourceEvent);\r\n })\r\n .on('brush', function () {\r\n config.zoom_onzoom.call($$.api, getZoomedDomain(d3.event.selection));\r\n })\r\n .on('end', function () {\r\n if (d3.event.selection == null) {\r\n return;\r\n }\r\n var zoomedDomain = getZoomedDomain(d3.event.selection);\r\n if (!config.zoom_disableDefaultBehavior) {\r\n $$.api.zoom(zoomedDomain);\r\n }\r\n $$.svg.select('.' + CLASS.dragZoom).classed('disabled', true);\r\n config.zoom_onzoomend.call($$.api, zoomedDomain);\r\n }));\r\n context\r\n .append('g')\r\n .classed(CLASS.dragZoom, true)\r\n .attr('clip-path', $$.clipPath)\r\n .attr('transform', 'translate(' + brushXPos + ',' + brushYPos + ')')\r\n .call(brush);\r\n };\r\n ChartInternal.prototype.getZoomDomain = function () {\r\n var $$ = this, config = $$.config, d3 = $$.d3, min = d3.min([$$.orgXDomain[0], config.zoom_x_min]), max = d3.max([$$.orgXDomain[1], config.zoom_x_max]);\r\n return [min, max];\r\n };\r\n ChartInternal.prototype.redrawForZoom = function () {\r\n var $$ = this, d3 = $$.d3, config = $$.config, zoom = $$.zoom, x = $$.x;\r\n if (!config.zoom_enabled) {\r\n return;\r\n }\r\n if ($$.filterTargetsToShow($$.data.targets).length === 0) {\r\n return;\r\n }\r\n zoom.update();\r\n if (config.zoom_disableDefaultBehavior) {\r\n return;\r\n }\r\n if ($$.isCategorized() && x.orgDomain()[0] === $$.orgXDomain[0]) {\r\n x.domain([$$.orgXDomain[0] - 1e-10, x.orgDomain()[1]]);\r\n }\r\n $$.redraw({\r\n withTransition: false,\r\n withY: config.zoom_rescale,\r\n withSubchart: false,\r\n withEventRect: false,\r\n withDimension: false\r\n });\r\n if (d3.event.sourceEvent && d3.event.sourceEvent.type === 'mousemove') {\r\n $$.cancelClick = true;\r\n }\r\n };\n\n return c3;\n\n})));\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t b ? 1 : a >= b ? 0 : NaN;\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 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","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance\";\n\nexport default function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n}\n","import ascending from \"./ascending\";\nimport number from \"./number\";\nimport quantile from \"./quantile\";\n\nexport default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending\";\n\nexport default function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n","export default function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","import deviation from \"../deviation\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as chord} from \"./chord\";\nexport {default as ribbon} from \"./ribbon\";\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport {cos, halfPi, sin} from \"./math\";\nimport {path} from \"d3-path\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nexport default function() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","export default function(ring) {\n var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(a, b) {\n return a - b;\n}\n","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n}\n\n// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(ring, hole) {\n var i = -1, n = hole.length, c;\n while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0], y = point[1], contains = -1;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;\n }\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}\n","import {extent, thresholdSturges, tickStep, range} from \"d3-array\";\nimport {slice} from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\n\nvar cases = [\n [],\n [[[1.0, 1.5], [0.5, 1.0]]],\n [[[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [0.5, 1.0]]],\n [[[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],\n [[[1.0, 0.5], [1.0, 1.5]]],\n [[[1.0, 0.5], [0.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 0.5]]],\n [[[1.0, 1.5], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],\n [[[1.5, 1.0], [1.0, 0.5]]],\n [[[0.5, 1.0], [1.5, 1.0]]],\n [[[1.0, 1.5], [1.5, 1.0]]],\n [[[0.5, 1.0], [1.0, 1.5]]],\n []\n];\n\nexport default function() {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var domain = extent(values), start = domain[0], stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function(value) {\n return contour(values, value);\n });\n }\n\n // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n function contour(values, value) {\n var polygons = [],\n holes = [];\n\n isorings(values, value, function(ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);\n else holes.push(ring);\n });\n\n holes.forEach(function(hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n }\n\n // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n function isorings(values, value, callback) {\n var fragmentByStart = new Array,\n fragmentByEnd = new Array,\n x, y, t0, t1, t2, t3;\n\n // Special case for the first row (y = -1, t2 = t3 = 0).\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n cases[t1 << 0].forEach(stitch);\n\n // General case for the intermediate rows.\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t1 | t2 << 3].forEach(stitch);\n }\n\n // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f, g;\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function(point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function(_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}\n","import {max, range, tickStep} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {blurX, blurY} from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function() {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20, // blur radius\n k = 2, // log2(grid cell size)\n o = r * 3, // grid offset, to pad for blur\n n = (dx + o * 2) >> k, // grid width\n m = (dy + o * 2) >> k, // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n\n data.forEach(function(d, i, data) {\n var xi = (+x(d, i, data) + o) >> k,\n yi = (+y(d, i, data) + o) >> k,\n wi = +weight(d, i, data);\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n });\n\n // TODO Optimize.\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);\n blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);\n\n var tz = threshold(values0);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours()\n .thresholds(tz)\n .size([n, m])\n (values0)\n .map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n }\n\n // TODO Optimize.\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = (dx + o * 2) >> k;\n m = (dy + o * 2) >> k;\n return density;\n }\n\n density.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function(_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function(_) {\n if (!arguments.length) return [dx, dy];\n var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function(_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function(_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}\n","export {default as contours} from \"./contours\";\nexport {default as contourDensity} from \"./density\";\n","export default function() {}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function autoType(object) {\n for (var key in object) {\n var value = object[key].trim(), number, m;\n if (!value) value = null;\n else if (value === \"true\") value = true;\n else if (value === \"false\") value = false;\n else if (value === \"NaN\") value = NaN;\n else if (!isNaN(number = +value)) value = number;\n else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n value = new Date(value);\n }\n else continue;\n object[key] = value;\n }\n return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nvar fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","function responseBlob(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.blob();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseBlob);\n}\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","export default function(input, init) {\n return new Promise(function(resolve, reject) {\n var image = new Image;\n for (var key in init) image[key] = init[key];\n image.onerror = reject;\n image.onload = function() { resolve(image); };\n image.src = input;\n });\n}\n","export {default as blob} from \"./blob.js\";\nexport {default as buffer} from \"./buffer.js\";\nexport {default as dsv, csv, tsv} from \"./dsv.js\";\nexport {default as image} from \"./image.js\";\nexport {default as json} from \"./json.js\";\nexport {default as text} from \"./text.js\";\nexport {default as xml, html, svg} from \"./xml.js\";\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as forceCenter} from \"./center\";\nexport {default as forceCollide} from \"./collide\";\nexport {default as forceLink} from \"./link\";\nexport {default as forceManyBody} from \"./manyBody\";\nexport {default as forceRadial} from \"./radial\";\nexport {default as forceSimulation} from \"./simulation\";\nexport {default as forceX} from \"./x\";\nexport {default as forceY} from \"./y\";\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","import adder from \"./adder.js\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import adder from \"./adder.js\";\nimport {areaStream, areaRingSum} from \"./area.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport {abs, degrees, epsilon, radians} from \"./math.js\";\nimport stream from \"./stream.js\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import {asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar W0, W1,\n X0, Y0, Z0,\n X1, Y1, Z1,\n X2, Y2, Z2,\n lambda00, phi00, // first point\n x0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m), // line weight = angle\n v = m && -w / m; // area weight multiplier\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","import clipRectangle from \"./rectangle.js\";\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {default as polygonContains} from \"./polygonContains.js\";\nimport {default as distance} from \"./distance.js\";\nimport {epsilon2, radians} from \"./math.js\";\n\nvar containsObjectType = {\n Feature: function(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function(object, point) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n};\n\nvar containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n return false;\n },\n LineString: function(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsLine(coordinates[i], point)) return true;\n return false;\n },\n Polygon: function(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function(object, point) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object, point) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n ? containsGeometryType[geometry.type](geometry, point)\n : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (\n ab > 0 &&\n ao <= ab &&\n bo <= ab &&\n (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab\n )\n return true;\n }\n ao = bo;\n }\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function(object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type)\n ? containsObjectType[object.type]\n : containsGeometry)(object, point);\n}\n","import length from \"./length.js\";\n\nvar coordinates = [null, null],\n object = {type: \"LineString\", coordinates: coordinates};\n\nexport default function(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}\n","import {range} from \"d3-array\";\nimport {abs, ceil, epsilon} from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nexport default function graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]])\n .extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\n\nexport function graticule10() {\n return graticule()();\n}\n","export default function(x) {\n return x;\n}\n","export {default as geoArea} from \"./area.js\";\nexport {default as geoBounds} from \"./bounds.js\";\nexport {default as geoCentroid} from \"./centroid.js\";\nexport {default as geoCircle} from \"./circle.js\";\nexport {default as geoClipAntimeridian} from \"./clip/antimeridian.js\";\nexport {default as geoClipCircle} from \"./clip/circle.js\";\nexport {default as geoClipExtent} from \"./clip/extent.js\"; // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\nexport {default as geoClipRectangle} from \"./clip/rectangle.js\";\nexport {default as geoContains} from \"./contains.js\";\nexport {default as geoDistance} from \"./distance.js\";\nexport {default as geoGraticule, graticule10 as geoGraticule10} from \"./graticule.js\";\nexport {default as geoInterpolate} from \"./interpolate.js\";\nexport {default as geoLength} from \"./length.js\";\nexport {default as geoPath} from \"./path/index.js\";\nexport {default as geoAlbers} from \"./projection/albers.js\";\nexport {default as geoAlbersUsa} from \"./projection/albersUsa.js\";\nexport {default as geoAzimuthalEqualArea, azimuthalEqualAreaRaw as geoAzimuthalEqualAreaRaw} from \"./projection/azimuthalEqualArea.js\";\nexport {default as geoAzimuthalEquidistant, azimuthalEquidistantRaw as geoAzimuthalEquidistantRaw} from \"./projection/azimuthalEquidistant.js\";\nexport {default as geoConicConformal, conicConformalRaw as geoConicConformalRaw} from \"./projection/conicConformal.js\";\nexport {default as geoConicEqualArea, conicEqualAreaRaw as geoConicEqualAreaRaw} from \"./projection/conicEqualArea.js\";\nexport {default as geoConicEquidistant, conicEquidistantRaw as geoConicEquidistantRaw} from \"./projection/conicEquidistant.js\";\nexport {default as geoEqualEarth, equalEarthRaw as geoEqualEarthRaw} from \"./projection/equalEarth.js\";\nexport {default as geoEquirectangular, equirectangularRaw as geoEquirectangularRaw} from \"./projection/equirectangular.js\";\nexport {default as geoGnomonic, gnomonicRaw as geoGnomonicRaw} from \"./projection/gnomonic.js\";\nexport {default as geoIdentity} from \"./projection/identity.js\";\nexport {default as geoProjection, projectionMutator as geoProjectionMutator} from \"./projection/index.js\";\nexport {default as geoMercator, mercatorRaw as geoMercatorRaw} from \"./projection/mercator.js\";\nexport {default as geoNaturalEarth1, naturalEarth1Raw as geoNaturalEarth1Raw} from \"./projection/naturalEarth1.js\";\nexport {default as geoOrthographic, orthographicRaw as geoOrthographicRaw} from \"./projection/orthographic.js\";\nexport {default as geoStereographic, stereographicRaw as geoStereographicRaw} from \"./projection/stereographic.js\";\nexport {default as geoTransverseMercator, transverseMercatorRaw as geoTransverseMercatorRaw} from \"./projection/transverseMercator.js\";\nexport {default as geoRotation} from \"./rotation.js\";\nexport {default as geoStream} from \"./stream.js\";\nexport {default as geoTransform} from \"./transform.js\";\n","import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from \"./math.js\";\n\nexport default function(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n\n var interpolate = d ? function(t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees,\n atan2(z, sqrt(x * x + y * y)) * degrees\n ];\n } : function() {\n return [x0 * degrees, y0 * degrees];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n","import adder from \"./adder.js\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","import adder from \"../adder.js\";\nimport {abs} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import {sqrt} from \"../math.js\";\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\n\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n : Z1 ? [X1 / Z1, Y1 / Z1]\n : Z0 ? [X0 / Z0, Y0 / Z0]\n : [NaN, NaN];\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0, dy = y - y0, z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;\n","import {tau} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nexport default function PathContext(context) {\n this._context = context;\n}\n\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n};\n","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\n\nexport default function(projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function(object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function(object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function(object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}\n","import adder from \"../adder.js\";\nimport {sqrt} from \"../math.js\";\nimport noop from \"../noop.js\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","export default function PathString() {\n this._string = [];\n}\n\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import adder from \"./adder.js\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math.js\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {mercatorRaw} from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi + epsilon) y = -halfPi + epsilon; }\n else { if (y > halfPi - epsilon) y = halfPi - epsilon; }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import {abs, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {equirectangularRaw} from \"./equirectangular.js\";\n\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nexport default function() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport {cos, degrees, radians, sin} from \"../math.js\";\n\nexport default function() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n alpha = 0, ca, sa, // angle\n x0 = null, y0, x1, y1, // clip extent\n kx = 1, ky = 1,\n transform = transformer({\n point: function(x, y) {\n var p = projection([x, y])\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection (p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n } \n return [x + tx, y + ty];\n }\n projection.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n projection.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n }\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import {atan, cos, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nexport default function() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n","import {atan, exp, halfPi, log, tan} from \"../math.js\";\nimport {mercatorProjection} from \"./mercator.js\";\n\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\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 x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\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","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export {default as randomUniform} from \"./uniform\";\nexport {default as randomNormal} from \"./normal\";\nexport {default as randomLogNormal} from \"./logNormal\";\nexport {default as randomBates} from \"./bates\";\nexport {default as randomIrwinHall} from \"./irwinHall\";\nexport {default as randomExponential} from \"./exponential\";\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","export {default as schemeCategory10} from \"./categorical/category10.js\";\nexport {default as schemeAccent} from \"./categorical/Accent.js\";\nexport {default as schemeDark2} from \"./categorical/Dark2.js\";\nexport {default as schemePaired} from \"./categorical/Paired.js\";\nexport {default as schemePastel1} from \"./categorical/Pastel1.js\";\nexport {default as schemePastel2} from \"./categorical/Pastel2.js\";\nexport {default as schemeSet1} from \"./categorical/Set1.js\";\nexport {default as schemeSet2} from \"./categorical/Set2.js\";\nexport {default as schemeSet3} from \"./categorical/Set3.js\";\nexport {default as schemeTableau10} from \"./categorical/Tableau10.js\";\nexport {default as interpolateBrBG, scheme as schemeBrBG} from \"./diverging/BrBG.js\";\nexport {default as interpolatePRGn, scheme as schemePRGn} from \"./diverging/PRGn.js\";\nexport {default as interpolatePiYG, scheme as schemePiYG} from \"./diverging/PiYG.js\";\nexport {default as interpolatePuOr, scheme as schemePuOr} from \"./diverging/PuOr.js\";\nexport {default as interpolateRdBu, scheme as schemeRdBu} from \"./diverging/RdBu.js\";\nexport {default as interpolateRdGy, scheme as schemeRdGy} from \"./diverging/RdGy.js\";\nexport {default as interpolateRdYlBu, scheme as schemeRdYlBu} from \"./diverging/RdYlBu.js\";\nexport {default as interpolateRdYlGn, scheme as schemeRdYlGn} from \"./diverging/RdYlGn.js\";\nexport {default as interpolateSpectral, scheme as schemeSpectral} from \"./diverging/Spectral.js\";\nexport {default as interpolateBuGn, scheme as schemeBuGn} from \"./sequential-multi/BuGn.js\";\nexport {default as interpolateBuPu, scheme as schemeBuPu} from \"./sequential-multi/BuPu.js\";\nexport {default as interpolateGnBu, scheme as schemeGnBu} from \"./sequential-multi/GnBu.js\";\nexport {default as interpolateOrRd, scheme as schemeOrRd} from \"./sequential-multi/OrRd.js\";\nexport {default as interpolatePuBuGn, scheme as schemePuBuGn} from \"./sequential-multi/PuBuGn.js\";\nexport {default as interpolatePuBu, scheme as schemePuBu} from \"./sequential-multi/PuBu.js\";\nexport {default as interpolatePuRd, scheme as schemePuRd} from \"./sequential-multi/PuRd.js\";\nexport {default as interpolateRdPu, scheme as schemeRdPu} from \"./sequential-multi/RdPu.js\";\nexport {default as interpolateYlGnBu, scheme as schemeYlGnBu} from \"./sequential-multi/YlGnBu.js\";\nexport {default as interpolateYlGn, scheme as schemeYlGn} from \"./sequential-multi/YlGn.js\";\nexport {default as interpolateYlOrBr, scheme as schemeYlOrBr} from \"./sequential-multi/YlOrBr.js\";\nexport {default as interpolateYlOrRd, scheme as schemeYlOrRd} from \"./sequential-multi/YlOrRd.js\";\nexport {default as interpolateBlues, scheme as schemeBlues} from \"./sequential-single/Blues.js\";\nexport {default as interpolateGreens, scheme as schemeGreens} from \"./sequential-single/Greens.js\";\nexport {default as interpolateGreys, scheme as schemeGreys} from \"./sequential-single/Greys.js\";\nexport {default as interpolatePurples, scheme as schemePurples} from \"./sequential-single/Purples.js\";\nexport {default as interpolateReds, scheme as schemeReds} from \"./sequential-single/Reds.js\";\nexport {default as interpolateOranges, scheme as schemeOranges} from \"./sequential-single/Oranges.js\";\nexport {default as interpolateCividis} from \"./sequential-multi/cividis.js\";\nexport {default as interpolateCubehelixDefault} from \"./sequential-multi/cubehelix.js\";\nexport {default as interpolateRainbow, warm as interpolateWarm, cool as interpolateCool} from \"./sequential-multi/rainbow.js\";\nexport {default as interpolateSinebow} from \"./sequential-multi/sinebow.js\";\nexport {default as interpolateTurbo} from \"./sequential-multi/turbo.js\";\nexport {default as interpolateViridis, magma as interpolateMagma, inferno as interpolateInferno, plasma as interpolatePlasma} from \"./sequential-multi/viridis.js\";\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export {default as voronoi} from \"./voronoi\";\n","export function x(d) {\n return d[0];\n}\n\nexport function y(d) {\n return d[1];\n}\n","import constant from \"./constant\";\nimport {x as pointX, y as pointY} from \"./point\";\nimport Diagram, {epsilon} from \"./Diagram\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n","export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity} from \"./transform.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function(selection, k, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function(selection, x, y, p) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started, i, t, p;\n\n nopropagation();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}\n","export var name = \"d3\";\nexport var version = \"5.16.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\",\"visualization\",\"svg\",\"animation\",\"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"postpublish\":\"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v5.js && cp ../d3/dist/d3.min.js d3.v5.min.js && git add d3.v5.js d3.v5.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/dist/d3.js ../d3/dist/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \\\"${npm_package_version}\\\" && git tag -am \\\"${npm_package_version}\\\" v${npm_package_version} && git push && git push --tags && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"2\",\"rollup\":\"1\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"3\",\"rollup-plugin-terser\":\"5\",\"tape\":\"4\"};\nexport var dependencies = {\"d3-array\":\"1\",\"d3-axis\":\"1\",\"d3-brush\":\"1\",\"d3-chord\":\"1\",\"d3-collection\":\"1\",\"d3-color\":\"1\",\"d3-contour\":\"1\",\"d3-dispatch\":\"1\",\"d3-drag\":\"1\",\"d3-dsv\":\"1\",\"d3-ease\":\"1\",\"d3-fetch\":\"1\",\"d3-force\":\"1\",\"d3-format\":\"1\",\"d3-geo\":\"1\",\"d3-hierarchy\":\"1\",\"d3-interpolate\":\"1\",\"d3-path\":\"1\",\"d3-polygon\":\"1\",\"d3-quadtree\":\"1\",\"d3-random\":\"1\",\"d3-scale\":\"2\",\"d3-scale-chromatic\":\"1\",\"d3-selection\":\"1\",\"d3-shape\":\"1\",\"d3-time\":\"1\",\"d3-time-format\":\"2\",\"d3-timer\":\"1\",\"d3-transition\":\"1\",\"d3-voronoi\":\"1\",\"d3-zoom\":\"1\"};\n","export {version} from \"./dist/package.js\";\nexport * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-collection\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-voronoi\";\nexport * from \"d3-zoom\";\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","//\n// Main\n//\n\nfunction memoize (fn, options) {\n var cache = options && options.cache\n ? options.cache\n : cacheDefault\n\n var serializer = options && options.serializer\n ? options.serializer\n : serializerDefault\n\n var strategy = options && options.strategy\n ? options.strategy\n : strategyDefault\n\n return strategy(fn, {\n cache: cache,\n serializer: serializer\n })\n}\n\n//\n// Strategy\n//\n\nfunction isPrimitive (value) {\n return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction variadic (fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3)\n var cacheKey = serializer(args)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction assemble (fn, context, strategy, cache, serialize) {\n return strategy.bind(\n context,\n fn,\n cache,\n serialize\n )\n}\n\nfunction strategyDefault (fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyVariadic (fn, options) {\n var strategy = variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyMonadic (fn, options) {\n var strategy = monadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\n//\n// Serializer\n//\n\nfunction serializerDefault () {\n return JSON.stringify(arguments)\n}\n\n//\n// Cache\n//\n\nfunction ObjectWithoutPrototypeCache () {\n this.cache = Object.create(null)\n}\n\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n return (key in this.cache)\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key]\n}\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value\n}\n\nvar cacheDefault = {\n create: function create () {\n return new ObjectWithoutPrototypeCache()\n }\n}\n\n//\n// API\n//\n\nmodule.exports = memoize\nmodule.exports.strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic\n}\n","/*!\n* focus-trap 6.2.3\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, isFocusable } from 'tabbable';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar activeFocusDelay;\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n var doc = document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // @type {Array}\n containers: [],\n // list of objects identifying the first and last tabbable nodes in all containers/groups in\n // the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{ firstTabbableNode: HTMLElement|null, lastTabbableNode: HTMLElement|null }>}\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n var containersContain = function containersContain(element) {\n return state.containers.some(function (container) {\n return container.contains(element);\n });\n };\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (!optionValue) {\n return null;\n }\n\n var node = optionValue;\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` refers to no known node\"));\n }\n }\n\n if (typeof optionValue === 'function') {\n node = optionValue();\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` did not return a node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node;\n\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (containersContain(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.tabbableGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container);\n\n if (tabbableNodes.length > 0) {\n return {\n firstTabbableNode: tabbableNodes[0],\n lastTabbableNode: tabbableNodes[tabbableNodes.length - 1]\n };\n }\n\n return undefined;\n }).filter(function (group) {\n return !!group;\n }); // remove groups with no tabbable nodes\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus')) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus');\n return node ? node : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n if (containersContain(e.target)) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (config.clickOutsideDeactivates) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(e.target)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (config.allowOutsideClick && (typeof config.allowOutsideClick === 'boolean' ? config.allowOutsideClick : config.allowOutsideClick(e))) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var targetContained = containersContain(e.target); // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || e.target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = e.target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n if (e.shiftKey) {\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref) {\n var firstTabbableNode = _ref.firstTabbableNode;\n return e.target === firstTabbableNode;\n });\n\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var lastTabbableNode = _ref2.lastTabbableNode;\n return e.target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n }\n };\n\n var checkKey = function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n if (config.clickOutsideDeactivates) {\n return;\n }\n\n if (containersContain(e.target)) {\n return;\n }\n\n if (config.allowOutsideClick && (typeof config.allowOutsideClick === 'boolean' ? config.allowOutsideClick : config.allowOutsideClick(e))) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n activeFocusDelay = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n updateTabbableNodes();\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n var onActivate = activateOptions && activateOptions.onActivate ? activateOptions.onActivate : config.onActivate;\n\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n clearTimeout(activeFocusDelay);\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = deactivateOptions && deactivateOptions.onDeactivate !== undefined ? deactivateOptions.onDeactivate : config.onDeactivate;\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus = deactivateOptions && deactivateOptions.returnFocus !== undefined ? deactivateOptions.returnFocus : config.returnFocusOnDeactivate;\n\n if (returnFocus) {\n delay(function () {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n });\n }\n\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { __assign } from \"tslib\";\nimport { pegParse } from './src/parser';\nimport { normalizeHashtagInPlural } from './src/normalize';\nexport * from './src/types';\nexport * from './src/parser';\nexport function parse(input, opts) {\n opts = __assign({ normalizeHashtagInPlural: true, shouldParseSkeleton: true }, (opts || {}));\n var els = pegParse(input, opts);\n if (opts.normalizeHashtagInPlural) {\n normalizeHashtagInPlural(els);\n }\n return els;\n}\n","import { __spreadArrays } from \"tslib\";\nimport { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","// @ts-nocheck\nimport { __assign, __extends } from \"tslib\";\n// @generated\nimport { TYPE, } from './types';\nimport { parseDateTimeSkeleton, parseNumberSkeleton } from './skeleton';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function () { return !ignoreTag; };\n var peg$c1 = function (x) { return x; };\n var peg$c2 = function () { return ignoreTag; };\n var peg$c3 = \"<\";\n var peg$c4 = peg$literalExpectation(\"<\", false);\n var peg$c5 = function (parts) {\n return parts.join('');\n };\n var peg$c6 = function () { return '<'; };\n var peg$c7 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c8 = \"#\";\n var peg$c9 = peg$literalExpectation(\"#\", false);\n var peg$c10 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"tagElement\");\n var peg$c12 = function (open, children, close) {\n if (open !== close) {\n error(\"Mismatch tag \\\"\" + open + \"\\\" !== \\\"\" + close + \"\\\"\", location());\n }\n return __assign({ type: TYPE.tag, value: open, children: children }, insertLocation());\n };\n var peg$c13 = \"/>\";\n var peg$c14 = peg$literalExpectation(\"/>\", false);\n var peg$c15 = function (value) {\n return __assign({ type: TYPE.literal, value: value.join('') }, insertLocation());\n };\n var peg$c16 = \">\";\n var peg$c17 = peg$literalExpectation(\">\", false);\n var peg$c18 = function (tag) { return tag; };\n var peg$c19 = \"' || x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c99 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c100 = peg$otherExpectation(\"validTag\");\n var peg$c101 = peg$otherExpectation(\"argNumber\");\n var peg$c102 = \"0\";\n var peg$c103 = peg$literalExpectation(\"0\", false);\n var peg$c104 = function () { return 0; };\n var peg$c105 = /^[1-9]/;\n var peg$c106 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c107 = /^[0-9]/;\n var peg$c108 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c109 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c110 = peg$otherExpectation(\"argName\");\n var peg$c111 = peg$otherExpectation(\"tagName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0, s1, s2;\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c0();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsetagElement();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c2();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n s3 = peg$parsequotedString();\n if (s3 === peg$FAILED) {\n s3 = peg$parseunquotedString();\n if (s3 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 60) {\n s3 = peg$c3;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n s3 = peg$parsequotedString();\n if (s3 === peg$FAILED) {\n s3 = peg$parseunquotedString();\n if (s3 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 60) {\n s3 = peg$c3;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c5(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parsenonTagStartingAngleBracket();\n }\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parsenonTagStartingAngleBracket();\n }\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c5(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsenonTagStartingAngleBracket() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n s2 = peg$parseopeningTag();\n if (s2 === peg$FAILED) {\n s2 = peg$parseclosingTag();\n if (s2 === peg$FAILED) {\n s2 = peg$parseselfClosingTag();\n }\n }\n peg$silentFails--;\n if (s2 === peg$FAILED) {\n s1 = undefined;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 60) {\n s2 = peg$c3;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c6();\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c7(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c8;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10();\n }\n s0 = s1;\n return s0;\n }\n function peg$parsetagElement() {\n var s0, s1, s2, s3;\n peg$silentFails++;\n s0 = peg$parseselfClosingTag();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseopeningTag();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessage();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseclosingTag();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12(s1, s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parseselfClosingTag() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\n s2 = peg$c3;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsevalidTag();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s5 = peg$c13;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s5 !== peg$FAILED) {\n s2 = [s2, s3, s4, s5];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c15(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseopeningTag() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 60) {\n s1 = peg$c3;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsevalidTag();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s3 = peg$c16;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseclosingTag() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c20);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsevalidTag();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s3 = peg$c16;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c24;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c21);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c28.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c28.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c27);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c31);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c36(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c37(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c38) {\n s1 = peg$c38;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c42(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c43;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c45) {\n s7 = peg$c45;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c46);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c43;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c24;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c48;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c50.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c50.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c48;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c52.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c53);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c52.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c53);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c54.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c55);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c54.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c55);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c56(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c38) {\n s1 = peg$c38;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c57();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c42(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c43;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c58) {\n s7 = peg$c58;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c59);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c60) {\n s7 = peg$c60;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c61);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c43;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c24;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c43;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c62) {\n s7 = peg$c62;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c63);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c64) {\n s7 = peg$c64;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c43;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c66) {\n s12 = peg$c66;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c24;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c68(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c43;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c69) {\n s7 = peg$c69;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c70);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c43;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c24;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c71(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c72;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c22;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c74(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c24;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c75(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c22;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c76(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c24;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c25);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c79.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c80);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c78);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c82.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c86;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c87);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c88(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c85);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c48;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c91) {\n s1 = peg$c91;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c92);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c90);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c48;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c91) {\n s5 = peg$c91;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c92);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c50.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c91) {\n s5 = peg$c91;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c92);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c50.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c48;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c94(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c95(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c96;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c97);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c98(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c99);\n }\n }\n return s0;\n }\n function peg$parsevalidTag() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parsetagName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c100);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c102;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c103);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c104();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c105.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c106);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c107.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c108);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c107.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c108);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c109(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c101);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c110);\n }\n }\n return s0;\n }\n function peg$parsetagName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c86;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c87);\n }\n }\n if (s2 === peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c86;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c87);\n }\n }\n if (s2 === peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c111);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n var ignoreTag = options && options.ignoreTag;\n var shouldParseSkeleton = options && options.shouldParseSkeleton;\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","import { __assign } from \"tslib\";\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n // precision-integer case\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArrays } from \"tslib\";\nimport { parse } from 'intl-messageformat-parser';\nimport * as memoize from 'fast-memoize';\nimport { formatToParts, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n has: function (key) {\n return key in store;\n },\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n// @ts-ignore this is to deal with rollup's default import shenanigans\nvar _memoizeIntl = memoize.default || memoize;\nvar memoizeIntl = _memoizeIntl;\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: memoizeIntl.strategies.variadic,\n }),\n getDateTimeFormat: memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: memoizeIntl.strategies.variadic,\n }),\n getPluralRules: memoizeIntl(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArrays([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: memoizeIntl.strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== 0 /* literal */ ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\" + value + \"\\\" must be of type \" + type, \"INVALID_VALUE\" /* INVALID_VALUE */, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\", \"MISSING_VALUE\" /* MISSING_VALUE */, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from 'intl-messageformat-parser';\nimport { MissingValueError, InvalidValueError, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 0 /* literal */,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: 0 /* literal */,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: 0 /* literal */,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? 0 /* literal */ : 1 /* object */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? 0 /* literal */ : 1 /* object */,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", \"MISSING_INTL_API\" /* MISSING_INTL_API */, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","// This file is deprecated in 1.12.0 to be removed in 1.13\n( function() {\ndefine( [\n\t\"jquery\",\n\t\"./data\",\n\t\"./disable-selection\",\n\t\"./focusable\",\n\t\"./form\",\n\t\"./ie\",\n\t\"./keycode\",\n\t\"./labels\",\n\t\"./jquery-1-7\",\n\t\"./plugin\",\n\t\"./safe-active-element\",\n\t\"./safe-blur\",\n\t\"./scroll-parent\",\n\t\"./tabbable\",\n\t\"./unique-id\",\n\t\"./version\"\n] );\n} )();\n","/*!\n * jQuery UI Effects 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Effects Core\n//>>group: Effects\n// jscs:disable maximumLineLength\n//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/category/effects-core/\n//>>demos: http://jqueryui.com/effect/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\nvar dataSpace = \"ui-effects-\",\n\tdataSpaceStyle = \"ui-effects-style\",\n\tdataSpaceAnimated = \"ui-effects-animated\",\n\n\t// Create a local jQuery because jQuery Color relies on it and the\n\t// global may not exist with AMD and a custom build (#10199)\n\tjQuery = $;\n\n$.effects = {\n\teffect: {}\n};\n\n/*!\n * jQuery Color Animations v2.1.2\n * https://github.com/jquery/jquery-color\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * Date: Wed Jan 16 08:47:09 2013 -0600\n */\n( function( jQuery, undefined ) {\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor \" +\n\t\t\"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\t// Plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\n\t// A set of RE's that can match strings and generate color tuples.\n\tstringParsers = [ {\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// This regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// This regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t} ],\n\n\t// JQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// Element for support tests\n\tsupportElem = jQuery( \"

\" )[ 0 ],\n\n\t// Colors = jQuery.Color.names\n\tcolors,\n\n\t// Local aliases of functions called often\n\teach = jQuery.each;\n\n// Determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// Define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n} );\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn ( allowEmpty || !prop.def ) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\n\t\t// We add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn ( value + type.mod ) % type.mod;\n\t}\n\n\t// For now all property types without mod have min and max\n\treturn 0 > value ? 0 : type.max < value ? type.max : value;\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// If this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// Exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t} );\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// If this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// Named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = jQuery.type( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// More than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t} );\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// If the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// If the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// This is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] &&\n\t\t\t\t\t\t\tjQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\n\t\t\t\t\t\t// Use the default of 1\n\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif ( isCache ) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn same;\n\t\t} );\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t} );\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// If null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t} );\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\n\t\t// If we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t} ) );\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\treturn v == null ? ( i > 2 ? 1 : 0 ) : v;\n\t\t\t} );\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// Catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t} );\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// Default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t} ).join( \"\" );\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n} );\ncolor.fn.parse.prototype = color.fn;\n\n// Hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + ( q - p ) * h * 6;\n\t}\n\tif ( h * 2 < 1 ) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// Makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// Generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = jQuery.type( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t} );\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// Makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\n\t\t// Alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar vtype = jQuery.type( value ),\n\t\t\t\tfn = ( key === \"alpha\" ? ( this._hsla ? \"hsla\" : \"rgba\" ) : spaceName ),\n\t\t\t\tlocal = this[ fn ](),\n\t\t\t\tcur = local[ prop.idx ],\n\t\t\t\tmatch;\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = jQuery.type( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t} );\n} );\n\n// Add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( jQuery.type( value ) !== \"string\" ||\n\t\t\t\t\t\t( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t( backgroundColor === \"\" || backgroundColor === \"transparent\" ) &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Wrapped to prevent IE from throwing errors on \"invalid\" values like\n\t\t\t\t\t// 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t} );\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t} );\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n} )( jQuery );\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n( function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each(\n\t[ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ],\n\tfunction( _, prop ) {\n\t\t$.fx.step[ prop ] = function( fx ) {\n\t\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\t\tfx.setAttr = true;\n\t\t\t}\n\t\t};\n\t}\n);\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ $.camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\n\t// Support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// Support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// Map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t} );\n\n\t\t// Apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function( i, action ) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// Map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t} );\n\n\t\t// Apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// Map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend( {}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t} );\n\n\t\t// Once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done( function() {\n\n\t\t\t// Set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// For each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function( key ) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// This is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t} );\n\t} );\n};\n\n$.fn.extend( {\n\taddClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.addClass ),\n\n\tremoveClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.removeClass ),\n\n\ttoggleClass: ( function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\n\t\t\t\t\t// Without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t( force ? { add: classNames } : { remove: classNames } ),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback ) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n} );\n\n} )();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n( function() {\n\nif ( $.expr && $.expr.filters && $.expr.filters.animated ) {\n\t$.expr.filters.animated = ( function( orig ) {\n\t\treturn function( elem ) {\n\t\t\treturn !!$( elem ).data( dataSpaceAnimated ) || orig( elem );\n\t\t};\n\t} )( $.expr.filters.animated );\n}\n\nif ( $.uiBackCompat !== false ) {\n\t$.extend( $.effects, {\n\n\t\t// Saves a set of properties in a data storage\n\t\tsave: function( element, set ) {\n\t\t\tvar i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Restores a set of previously saved properties from a data storage\n\t\trestore: function( element, set ) {\n\t\t\tvar val, i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t\telement.css( set[ i ], val );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsetMode: function( el, mode ) {\n\t\t\tif ( mode === \"toggle\" ) {\n\t\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t\t}\n\t\t\treturn mode;\n\t\t},\n\n\t\t// Wraps the element around a wrapper that copies position properties\n\t\tcreateWrapper: function( element ) {\n\n\t\t\t// If the element is already wrapped, return it\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\treturn element.parent();\n\t\t\t}\n\n\t\t\t// Wrap the element\n\t\t\tvar props = {\n\t\t\t\t\twidth: element.outerWidth( true ),\n\t\t\t\t\theight: element.outerHeight( true ),\n\t\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t\t},\n\t\t\t\twrapper = $( \"

\" )\n\t\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t} ),\n\n\t\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\t\tsize = {\n\t\t\t\t\twidth: element.width(),\n\t\t\t\t\theight: element.height()\n\t\t\t\t},\n\t\t\t\tactive = document.activeElement;\n\n\t\t\t// Support: Firefox\n\t\t\t// Firefox incorrectly exposes anonymous content\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\t\ttry {\n\t\t\t\tactive.id;\n\t\t\t} catch ( e ) {\n\t\t\t\tactive = document.body;\n\t\t\t}\n\n\t\t\telement.wrap( wrapper );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t// Hotfix for jQuery 1.4 since some change in wrap() seems to actually\n\t\t\t// lose the reference to the wrapped element\n\t\t\twrapper = element.parent();\n\n\t\t\t// Transfer positioning properties to the wrapper\n\t\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\t\twrapper.css( { position: \"relative\" } );\n\t\t\t\telement.css( { position: \"relative\" } );\n\t\t\t} else {\n\t\t\t\t$.extend( props, {\n\t\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t\t} );\n\t\t\t\t$.each( [ \"top\", \"left\", \"bottom\", \"right\" ], function( i, pos ) {\n\t\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\telement.css( {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: \"auto\",\n\t\t\t\t\tbottom: \"auto\"\n\t\t\t\t} );\n\t\t\t}\n\t\t\telement.css( size );\n\n\t\t\treturn wrapper.css( props ).show();\n\t\t},\n\n\t\tremoveWrapper: function( element ) {\n\t\t\tvar active = document.activeElement;\n\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\telement.parent().replaceWith( element );\n\n\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn element;\n\t\t}\n\t} );\n}\n\n$.extend( $.effects, {\n\tversion: \"1.12.1\",\n\n\tdefine: function( name, mode, effect ) {\n\t\tif ( !effect ) {\n\t\t\teffect = mode;\n\t\t\tmode = \"effect\";\n\t\t}\n\n\t\t$.effects.effect[ name ] = effect;\n\t\t$.effects.effect[ name ].mode = mode;\n\n\t\treturn effect;\n\t},\n\n\tscaledDimensions: function( element, percent, direction ) {\n\t\tif ( percent === 0 ) {\n\t\t\treturn {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\touterHeight: 0,\n\t\t\t\touterWidth: 0\n\t\t\t};\n\t\t}\n\n\t\tvar x = direction !== \"horizontal\" ? ( ( percent || 100 ) / 100 ) : 1,\n\t\t\ty = direction !== \"vertical\" ? ( ( percent || 100 ) / 100 ) : 1;\n\n\t\treturn {\n\t\t\theight: element.height() * y,\n\t\t\twidth: element.width() * x,\n\t\t\touterHeight: element.outerHeight() * y,\n\t\t\touterWidth: element.outerWidth() * x\n\t\t};\n\n\t},\n\n\tclipToBox: function( animation ) {\n\t\treturn {\n\t\t\twidth: animation.clip.right - animation.clip.left,\n\t\t\theight: animation.clip.bottom - animation.clip.top,\n\t\t\tleft: animation.clip.left,\n\t\t\ttop: animation.clip.top\n\t\t};\n\t},\n\n\t// Injects recently queued functions to be first in line (after \"inprogress\")\n\tunshift: function( element, queueLength, count ) {\n\t\tvar queue = element.queue();\n\n\t\tif ( queueLength > 1 ) {\n\t\t\tqueue.splice.apply( queue,\n\t\t\t\t[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );\n\t\t}\n\t\telement.dequeue();\n\t},\n\n\tsaveStyle: function( element ) {\n\t\telement.data( dataSpaceStyle, element[ 0 ].style.cssText );\n\t},\n\n\trestoreStyle: function( element ) {\n\t\telement[ 0 ].style.cssText = element.data( dataSpaceStyle ) || \"\";\n\t\telement.removeData( dataSpaceStyle );\n\t},\n\n\tmode: function( element, mode ) {\n\t\tvar hidden = element.is( \":hidden\" );\n\n\t\tif ( mode === \"toggle\" ) {\n\t\t\tmode = hidden ? \"show\" : \"hide\";\n\t\t}\n\t\tif ( hidden ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\tmode = \"none\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\n\t\tswitch ( origin[ 0 ] ) {\n\t\tcase \"top\":\n\t\t\ty = 0;\n\t\t\tbreak;\n\t\tcase \"middle\":\n\t\t\ty = 0.5;\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\ty = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ty = origin[ 0 ] / original.height;\n\t\t}\n\n\t\tswitch ( origin[ 1 ] ) {\n\t\tcase \"left\":\n\t\t\tx = 0;\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tx = 0.5;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tx = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tx = origin[ 1 ] / original.width;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Creates a placeholder element so that the original element can be made absolute\n\tcreatePlaceholder: function( element ) {\n\t\tvar placeholder,\n\t\t\tcssPosition = element.css( \"position\" ),\n\t\t\tposition = element.position();\n\n\t\t// Lock in margins first to account for form elements, which\n\t\t// will change margin if you explicitly set height\n\t\t// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380\n\t\t// Support: Safari\n\t\telement.css( {\n\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\tmarginRight: element.css( \"marginRight\" )\n\t\t} )\n\t\t.outerWidth( element.outerWidth() )\n\t\t.outerHeight( element.outerHeight() );\n\n\t\tif ( /^(static|relative)/.test( cssPosition ) ) {\n\t\t\tcssPosition = \"absolute\";\n\n\t\t\tplaceholder = $( \"<\" + element[ 0 ].nodeName + \">\" ).insertAfter( element ).css( {\n\n\t\t\t\t// Convert inline to inline block to account for inline elements\n\t\t\t\t// that turn to inline block based on content (like img)\n\t\t\t\tdisplay: /^(inline|ruby)/.test( element.css( \"display\" ) ) ?\n\t\t\t\t\t\"inline-block\" :\n\t\t\t\t\t\"block\",\n\t\t\t\tvisibility: \"hidden\",\n\n\t\t\t\t// Margins need to be set to account for margin collapse\n\t\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\t\tmarginRight: element.css( \"marginRight\" ),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t} )\n\t\t\t.outerWidth( element.outerWidth() )\n\t\t\t.outerHeight( element.outerHeight() )\n\t\t\t.addClass( \"ui-effects-placeholder\" );\n\n\t\t\telement.data( dataSpace + \"placeholder\", placeholder );\n\t\t}\n\n\t\telement.css( {\n\t\t\tposition: cssPosition,\n\t\t\tleft: position.left,\n\t\t\ttop: position.top\n\t\t} );\n\n\t\treturn placeholder;\n\t},\n\n\tremovePlaceholder: function( element ) {\n\t\tvar dataKey = dataSpace + \"placeholder\",\n\t\t\t\tplaceholder = element.data( dataKey );\n\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.remove();\n\t\t\telement.removeData( dataKey );\n\t\t}\n\t},\n\n\t// Removes a placeholder if it exists and restores\n\t// properties that were modified during placeholder creation\n\tcleanUp: function( element ) {\n\t\t$.effects.restoreStyle( element );\n\t\t$.effects.removePlaceholder( element );\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t} );\n\t\treturn value;\n\t}\n} );\n\n// Return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// Allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// Convert to an object\n\teffect = { effect: effect };\n\n\t// Catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, callback)\n\tif ( $.isFunction( options ) ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, options, callback)\n\tif ( $.isFunction( speed ) ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// Add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( $.isFunction( option ) ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend( {\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\teffectMethod = $.effects.effect[ args.effect ],\n\t\t\tdefaultMode = effectMethod.mode,\n\t\t\tqueue = args.queue,\n\t\t\tqueueName = queue || \"fx\",\n\t\t\tcomplete = args.complete,\n\t\t\tmode = args.mode,\n\t\t\tmodes = [],\n\t\t\tprefilter = function( next ) {\n\t\t\t\tvar el = $( this ),\n\t\t\t\t\tnormalizedMode = $.effects.mode( el, mode ) || defaultMode;\n\n\t\t\t\t// Sentinel for duck-punching the :animated psuedo-selector\n\t\t\t\tel.data( dataSpaceAnimated, true );\n\n\t\t\t\t// Save effect mode for later use,\n\t\t\t\t// we can't just call $.effects.mode again later,\n\t\t\t\t// as the .show() below destroys the initial state\n\t\t\t\tmodes.push( normalizedMode );\n\n\t\t\t\t// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13\n\t\t\t\tif ( defaultMode && ( normalizedMode === \"show\" ||\n\t\t\t\t\t\t( normalizedMode === defaultMode && normalizedMode === \"hide\" ) ) ) {\n\t\t\t\t\tel.show();\n\t\t\t\t}\n\n\t\t\t\tif ( !defaultMode || normalizedMode !== \"none\" ) {\n\t\t\t\t\t$.effects.saveStyle( el );\n\t\t\t\t}\n\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\n\t\t\t// Delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( complete ) {\n\t\t\t\t\t\tcomplete.call( this );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this );\n\n\t\t\tfunction cleanup() {\n\t\t\t\telem.removeData( dataSpaceAnimated );\n\n\t\t\t\t$.effects.cleanUp( elem );\n\n\t\t\t\tif ( args.mode === \"hide\" ) {\n\t\t\t\t\telem.hide();\n\t\t\t\t}\n\n\t\t\t\tdone();\n\t\t\t}\n\n\t\t\tfunction done() {\n\t\t\t\tif ( $.isFunction( complete ) ) {\n\t\t\t\t\tcomplete.call( elem[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override mode option on a per element basis,\n\t\t\t// as toggle can be either show or hide depending on element state\n\t\t\targs.mode = modes.shift();\n\n\t\t\tif ( $.uiBackCompat !== false && !defaultMode ) {\n\t\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, done );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( args.mode === \"none\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, cleanup );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Run prefilter on all elements first to ensure that\n\t\t// any showing or hiding happens before placeholder creation,\n\t\t// which ensures that any layout changes are correctly captured.\n\t\treturn queue === false ?\n\t\t\tthis.each( prefilter ).each( run ) :\n\t\t\tthis.queue( queueName, prefilter ).queue( queueName, run );\n\t},\n\n\tshow: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.show ),\n\n\thide: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.hide ),\n\n\ttoggle: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggle ),\n\n\tcssUnit: function( key ) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t} );\n\t\treturn val;\n\t},\n\n\tcssClip: function( clipObj ) {\n\t\tif ( clipObj ) {\n\t\t\treturn this.css( \"clip\", \"rect(\" + clipObj.top + \"px \" + clipObj.right + \"px \" +\n\t\t\t\tclipObj.bottom + \"px \" + clipObj.left + \"px)\" );\n\t\t}\n\t\treturn parseClip( this.css( \"clip\" ), this );\n\t},\n\n\ttransfer: function( options, done ) {\n\t\tvar element = $( this ),\n\t\t\ttarget = $( options.to ),\n\t\t\ttargetFixed = target.css( \"position\" ) === \"fixed\",\n\t\t\tbody = $( \"body\" ),\n\t\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\t\tendPosition = target.offset(),\n\t\t\tanimation = {\n\t\t\t\ttop: endPosition.top - fixTop,\n\t\t\t\tleft: endPosition.left - fixLeft,\n\t\t\t\theight: target.innerHeight(),\n\t\t\t\twidth: target.innerWidth()\n\t\t\t},\n\t\t\tstartPosition = element.offset(),\n\t\t\ttransfer = $( \"
\" )\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.addClass( options.className )\n\t\t\t\t.css( {\n\t\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\t\theight: element.innerHeight(),\n\t\t\t\t\twidth: element.innerWidth(),\n\t\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t\t} )\n\t\t\t\t.animate( animation, options.duration, options.easing, function() {\n\t\t\t\t\ttransfer.remove();\n\t\t\t\t\tif ( $.isFunction( done ) ) {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t}\n} );\n\nfunction parseClip( str, element ) {\n\t\tvar outerWidth = element.outerWidth(),\n\t\t\touterHeight = element.outerHeight(),\n\t\t\tclipRegex = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n\t\t\tvalues = clipRegex.exec( str ) || [ \"\", 0, outerWidth, outerHeight, 0 ];\n\n\t\treturn {\n\t\t\ttop: parseFloat( values[ 1 ] ) || 0,\n\t\t\tright: values[ 2 ] === \"auto\" ? outerWidth : parseFloat( values[ 2 ] ),\n\t\t\tbottom: values[ 3 ] === \"auto\" ? outerHeight : parseFloat( values[ 3 ] ),\n\t\t\tleft: parseFloat( values[ 4 ] ) || 0\n\t\t};\n}\n\n$.fx.step.clip = function( fx ) {\n\tif ( !fx.clipInit ) {\n\t\tfx.start = $( fx.elem ).cssClip();\n\t\tif ( typeof fx.end === \"string\" ) {\n\t\t\tfx.end = parseClip( fx.end, fx.elem );\n\t\t}\n\t\tfx.clipInit = true;\n\t}\n\n\t$( fx.elem ).cssClip( {\n\t\ttop: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,\n\t\tright: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,\n\t\tbottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,\n\t\tleft: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left\n\t} );\n};\n\n} )();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n( function() {\n\n// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n} );\n\n$.extend( baseEasings, {\n\tSine: function( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n} );\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n} );\n\n} )();\n\nreturn $.effects;\n\n} ) );\n","/*!\n * jQuery UI Keycode 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Keycode\n//>>group: Core\n//>>description: Provide keycodes as keynames\n//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\nreturn $.ui.keyCode = {\n\tBACKSPACE: 8,\n\tCOMMA: 188,\n\tDELETE: 46,\n\tDOWN: 40,\n\tEND: 35,\n\tENTER: 13,\n\tESCAPE: 27,\n\tHOME: 36,\n\tLEFT: 37,\n\tPAGE_DOWN: 34,\n\tPAGE_UP: 33,\n\tPERIOD: 190,\n\tRIGHT: 39,\n\tSPACE: 32,\n\tTAB: 9,\n\tUP: 38\n};\n\n} ) );\n","( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\n\n$.ui = $.ui || {};\n\nreturn $.ui.version = \"1.12.1\";\n\n} ) );\n","// jscs:disable maximumLineLength\n/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */\n/*!\n * jQuery UI Datepicker 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Datepicker\n//>>group: Widgets\n//>>description: Displays a calendar from an input or inline for selecting dates.\n//>>docs: http://api.jqueryui.com/datepicker/\n//>>demos: http://jqueryui.com/datepicker/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/datepicker.css\n//>>css.theme: ../../themes/base/theme.css\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../version\",\n\t\t\t\"../keycode\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\n$.extend( $.ui, { datepicker: { version: \"1.12.1\" } } );\n\nvar datepicker_instActive;\n\nfunction datepicker_getZindex( elem ) {\n\tvar position, value;\n\twhile ( elem.length && elem[ 0 ] !== document ) {\n\n\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t// This makes behavior of this function consistent across browsers\n\t\t// WebKit always returns auto if the element is positioned\n\t\tposition = elem.css( \"position\" );\n\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\n\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t// other browsers return a string\n\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t//
\n\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\telem = elem.parent();\n\t}\n\n\treturn 0;\n}\n/* Date picker manager.\n Use the singleton instance of this class, $.datepicker, to interact with the date picker.\n Settings for (groups of) date pickers are maintained in an instance object,\n allowing multiple different settings on the same page. */\n\nfunction Datepicker() {\n\tthis._curInst = null; // The current instance in use\n\tthis._keyEvent = false; // If the last event was a key event\n\tthis._disabledInputs = []; // List of date picker inputs that have been disabled\n\tthis._datepickerShowing = false; // True if the popup picker is showing , false if not\n\tthis._inDialog = false; // True if showing within a \"dialog\", false if not\n\tthis._mainDivId = \"ui-datepicker-div\"; // The ID of the main datepicker division\n\tthis._inlineClass = \"ui-datepicker-inline\"; // The name of the inline marker class\n\tthis._appendClass = \"ui-datepicker-append\"; // The name of the append marker class\n\tthis._triggerClass = \"ui-datepicker-trigger\"; // The name of the trigger marker class\n\tthis._dialogClass = \"ui-datepicker-dialog\"; // The name of the dialog marker class\n\tthis._disableClass = \"ui-datepicker-disabled\"; // The name of the disabled covering marker class\n\tthis._unselectableClass = \"ui-datepicker-unselectable\"; // The name of the unselectable cell marker class\n\tthis._currentClass = \"ui-datepicker-current-day\"; // The name of the current day marker class\n\tthis._dayOverClass = \"ui-datepicker-days-cell-over\"; // The name of the day hover marker class\n\tthis.regional = []; // Available regional settings, indexed by language code\n\tthis.regional[ \"\" ] = { // Default regional settings\n\t\tcloseText: \"Done\", // Display text for close link\n\t\tprevText: \"Prev\", // Display text for previous month link\n\t\tnextText: \"Next\", // Display text for next month link\n\t\tcurrentText: \"Today\", // Display text for current month link\n\t\tmonthNames: [ \"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\n\t\t\t\"July\",\"August\",\"September\",\"October\",\"November\",\"December\" ], // Names of months for drop-down and formatting\n\t\tmonthNamesShort: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ], // For formatting\n\t\tdayNames: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ], // For formatting\n\t\tdayNamesShort: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ], // For formatting\n\t\tdayNamesMin: [ \"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\" ], // Column headings for days starting at Sunday\n\t\tweekHeader: \"Wk\", // Column header for week of the year\n\t\tdateFormat: \"mm/dd/yy\", // See format options on parseDate\n\t\tfirstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...\n\t\tisRTL: false, // True if right-to-left language, false if left-to-right\n\t\tshowMonthAfterYear: false, // True if the year select precedes month, false for month then year\n\t\tyearSuffix: \"\" // Additional text to append to the year in the month headers\n\t};\n\tthis._defaults = { // Global defaults for all the date picker instances\n\t\tshowOn: \"focus\", // \"focus\" for popup on focus,\n\t\t\t// \"button\" for trigger button, or \"both\" for either\n\t\tshowAnim: \"fadeIn\", // Name of jQuery animation for popup\n\t\tshowOptions: {}, // Options for enhanced animations\n\t\tdefaultDate: null, // Used when field is blank: actual date,\n\t\t\t// +/-number for offset from today, null for today\n\t\tappendText: \"\", // Display text following the input box, e.g. showing the format\n\t\tbuttonText: \"...\", // Text for trigger button\n\t\tbuttonImage: \"\", // URL for trigger button image\n\t\tbuttonImageOnly: false, // True if the image appears alone, false if it appears on a button\n\t\thideIfNoPrevNext: false, // True to hide next/previous month links\n\t\t\t// if not applicable, false to just disable them\n\t\tnavigationAsDateFormat: false, // True if date formatting applied to prev/today/next links\n\t\tgotoCurrent: false, // True if today link goes back to current selection instead\n\t\tchangeMonth: false, // True if month can be selected directly, false if only prev/next\n\t\tchangeYear: false, // True if year can be selected directly, false if only prev/next\n\t\tyearRange: \"c-10:c+10\", // Range of years to display in drop-down,\n\t\t\t// either relative to today's year (-nn:+nn), relative to currently displayed year\n\t\t\t// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)\n\t\tshowOtherMonths: false, // True to show dates in other months, false to leave blank\n\t\tselectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable\n\t\tshowWeek: false, // True to show week of the year, false to not show it\n\t\tcalculateWeek: this.iso8601Week, // How to calculate the week of the year,\n\t\t\t// takes a Date and returns the number of the week for it\n\t\tshortYearCutoff: \"+10\", // Short year values < this are in the current century,\n\t\t\t// > this are in the previous century,\n\t\t\t// string value starting with \"+\" for current year + value\n\t\tminDate: null, // The earliest selectable date, or null for no limit\n\t\tmaxDate: null, // The latest selectable date, or null for no limit\n\t\tduration: \"fast\", // Duration of display/closure\n\t\tbeforeShowDay: null, // Function that takes a date and returns an array with\n\t\t\t// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or \"\",\n\t\t\t// [2] = cell title (optional), e.g. $.datepicker.noWeekends\n\t\tbeforeShow: null, // Function that takes an input field and\n\t\t\t// returns a set of custom settings for the date picker\n\t\tonSelect: null, // Define a callback function when a date is selected\n\t\tonChangeMonthYear: null, // Define a callback function when the month or year is changed\n\t\tonClose: null, // Define a callback function when the datepicker is closed\n\t\tnumberOfMonths: 1, // Number of months to show at a time\n\t\tshowCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)\n\t\tstepMonths: 1, // Number of months to step back/forward\n\t\tstepBigMonths: 12, // Number of months to step back/forward for the big links\n\t\taltField: \"\", // Selector for an alternate field to store selected dates into\n\t\taltFormat: \"\", // The date format to use for the alternate field\n\t\tconstrainInput: true, // The input is constrained by the current date format\n\t\tshowButtonPanel: false, // True to show button panel, false to not show it\n\t\tautoSize: false, // True to size the input for the date format, false to leave as is\n\t\tdisabled: false // The initial disabled state\n\t};\n\t$.extend( this._defaults, this.regional[ \"\" ] );\n\tthis.regional.en = $.extend( true, {}, this.regional[ \"\" ] );\n\tthis.regional[ \"en-US\" ] = $.extend( true, {}, this.regional.en );\n\tthis.dpDiv = datepicker_bindHover( $( \"
\" ) );\n}\n\n$.extend( Datepicker.prototype, {\n\t/* Class name added to elements to indicate already configured with a date picker. */\n\tmarkerClassName: \"hasDatepicker\",\n\n\t//Keep track of the maximum number of rows displayed (see #7043)\n\tmaxRows: 4,\n\n\t// TODO rename to \"widget\" when switching to widget factory\n\t_widgetDatepicker: function() {\n\t\treturn this.dpDiv;\n\t},\n\n\t/* Override the default settings for all instances of the date picker.\n\t * @param settings object - the new settings to use as defaults (anonymous object)\n\t * @return the manager object\n\t */\n\tsetDefaults: function( settings ) {\n\t\tdatepicker_extendRemove( this._defaults, settings || {} );\n\t\treturn this;\n\t},\n\n\t/* Attach the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t * @param settings object - the new settings to use for this date picker instance (anonymous)\n\t */\n\t_attachDatepicker: function( target, settings ) {\n\t\tvar nodeName, inline, inst;\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tinline = ( nodeName === \"div\" || nodeName === \"span\" );\n\t\tif ( !target.id ) {\n\t\t\tthis.uuid += 1;\n\t\t\ttarget.id = \"dp\" + this.uuid;\n\t\t}\n\t\tinst = this._newInst( $( target ), inline );\n\t\tinst.settings = $.extend( {}, settings || {} );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tthis._connectDatepicker( target, inst );\n\t\t} else if ( inline ) {\n\t\t\tthis._inlineDatepicker( target, inst );\n\t\t}\n\t},\n\n\t/* Create a new instance object. */\n\t_newInst: function( target, inline ) {\n\t\tvar id = target[ 0 ].id.replace( /([^A-Za-z0-9_\\-])/g, \"\\\\\\\\$1\" ); // escape jQuery meta chars\n\t\treturn { id: id, input: target, // associated target\n\t\t\tselectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection\n\t\t\tdrawMonth: 0, drawYear: 0, // month being drawn\n\t\t\tinline: inline, // is datepicker inline or not\n\t\t\tdpDiv: ( !inline ? this.dpDiv : // presentation div\n\t\t\tdatepicker_bindHover( $( \"
\" ) ) ) };\n\t},\n\n\t/* Attach the date picker to an input field. */\n\t_connectDatepicker: function( target, inst ) {\n\t\tvar input = $( target );\n\t\tinst.append = $( [] );\n\t\tinst.trigger = $( [] );\n\t\tif ( input.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._attachments( input, inst );\n\t\tinput.addClass( this.markerClassName ).on( \"keydown\", this._doKeyDown ).\n\t\t\ton( \"keypress\", this._doKeyPress ).on( \"keyup\", this._doKeyUp );\n\t\tthis._autoSize( inst );\n\t\t$.data( target, \"datepicker\", inst );\n\n\t\t//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\t},\n\n\t/* Make attachments based on settings. */\n\t_attachments: function( input, inst ) {\n\t\tvar showOn, buttonText, buttonImage,\n\t\t\tappendText = this._get( inst, \"appendText\" ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\tif ( inst.append ) {\n\t\t\tinst.append.remove();\n\t\t}\n\t\tif ( appendText ) {\n\t\t\tinst.append = $( \"\" + appendText + \"\" );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.append );\n\t\t}\n\n\t\tinput.off( \"focus\", this._showDatepicker );\n\n\t\tif ( inst.trigger ) {\n\t\t\tinst.trigger.remove();\n\t\t}\n\n\t\tshowOn = this._get( inst, \"showOn\" );\n\t\tif ( showOn === \"focus\" || showOn === \"both\" ) { // pop-up date picker when in the marked field\n\t\t\tinput.on( \"focus\", this._showDatepicker );\n\t\t}\n\t\tif ( showOn === \"button\" || showOn === \"both\" ) { // pop-up date picker when button clicked\n\t\t\tbuttonText = this._get( inst, \"buttonText\" );\n\t\t\tbuttonImage = this._get( inst, \"buttonImage\" );\n\t\t\tinst.trigger = $( this._get( inst, \"buttonImageOnly\" ) ?\n\t\t\t\t$( \"\" ).addClass( this._triggerClass ).\n\t\t\t\t\tattr( { src: buttonImage, alt: buttonText, title: buttonText } ) :\n\t\t\t\t$( \"\" ).addClass( this._triggerClass ).\n\t\t\t\t\thtml( !buttonImage ? buttonText : $( \"\" ).attr(\n\t\t\t\t\t{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );\n\t\t\tinput[ isRTL ? \"before\" : \"after\" ]( inst.trigger );\n\t\t\tinst.trigger.on( \"click\", function() {\n\t\t\t\tif ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\t$.datepicker._showDatepicker( input[ 0 ] );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} );\n\t\t}\n\t},\n\n\t/* Apply the maximum length for the date format. */\n\t_autoSize: function( inst ) {\n\t\tif ( this._get( inst, \"autoSize\" ) && !inst.inline ) {\n\t\t\tvar findMax, max, maxI, i,\n\t\t\t\tdate = new Date( 2009, 12 - 1, 20 ), // Ensure double digits\n\t\t\t\tdateFormat = this._get( inst, \"dateFormat\" );\n\n\t\t\tif ( dateFormat.match( /[DM]/ ) ) {\n\t\t\t\tfindMax = function( names ) {\n\t\t\t\t\tmax = 0;\n\t\t\t\t\tmaxI = 0;\n\t\t\t\t\tfor ( i = 0; i < names.length; i++ ) {\n\t\t\t\t\t\tif ( names[ i ].length > max ) {\n\t\t\t\t\t\t\tmax = names[ i ].length;\n\t\t\t\t\t\t\tmaxI = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn maxI;\n\t\t\t\t};\n\t\t\t\tdate.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?\n\t\t\t\t\t\"monthNames\" : \"monthNamesShort\" ) ) ) );\n\t\t\t\tdate.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?\n\t\t\t\t\t\"dayNames\" : \"dayNamesShort\" ) ) ) + 20 - date.getDay() );\n\t\t\t}\n\t\t\tinst.input.attr( \"size\", this._formatDate( inst, date ).length );\n\t\t}\n\t},\n\n\t/* Attach an inline date picker to a div. */\n\t_inlineDatepicker: function( target, inst ) {\n\t\tvar divSpan = $( target );\n\t\tif ( divSpan.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\t\tdivSpan.addClass( this.markerClassName ).append( inst.dpDiv );\n\t\t$.data( target, \"datepicker\", inst );\n\t\tthis._setDate( inst, this._getDefaultDate( inst ), true );\n\t\tthis._updateDatepicker( inst );\n\t\tthis._updateAlternate( inst );\n\n\t\t//If disabled option is true, disable the datepicker before showing it (see ticket #5665)\n\t\tif ( inst.settings.disabled ) {\n\t\t\tthis._disableDatepicker( target );\n\t\t}\n\n\t\t// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements\n\t\t// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height\n\t\tinst.dpDiv.css( \"display\", \"block\" );\n\t},\n\n\t/* Pop-up the date picker in a \"dialog\" box.\n\t * @param input element - ignored\n\t * @param date\tstring or Date - the initial date to display\n\t * @param onSelect function - the function to call when a date is selected\n\t * @param settings object - update the dialog date picker instance's settings (anonymous object)\n\t * @param pos int[2] - coordinates for the dialog's position within the screen or\n\t *\t\t\t\t\tevent - with x/y coordinates or\n\t *\t\t\t\t\tleave empty for default (screen centre)\n\t * @return the manager object\n\t */\n\t_dialogDatepicker: function( input, date, onSelect, settings, pos ) {\n\t\tvar id, browserWidth, browserHeight, scrollX, scrollY,\n\t\t\tinst = this._dialogInst; // internal instance\n\n\t\tif ( !inst ) {\n\t\t\tthis.uuid += 1;\n\t\t\tid = \"dp\" + this.uuid;\n\t\t\tthis._dialogInput = $( \"\" );\n\t\t\tthis._dialogInput.on( \"keydown\", this._doKeyDown );\n\t\t\t$( \"body\" ).append( this._dialogInput );\n\t\t\tinst = this._dialogInst = this._newInst( this._dialogInput, false );\n\t\t\tinst.settings = {};\n\t\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, settings || {} );\n\t\tdate = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );\n\t\tthis._dialogInput.val( date );\n\n\t\tthis._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );\n\t\tif ( !this._pos ) {\n\t\t\tbrowserWidth = document.documentElement.clientWidth;\n\t\t\tbrowserHeight = document.documentElement.clientHeight;\n\t\t\tscrollX = document.documentElement.scrollLeft || document.body.scrollLeft;\n\t\t\tscrollY = document.documentElement.scrollTop || document.body.scrollTop;\n\t\t\tthis._pos = // should use actual width/height below\n\t\t\t\t[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];\n\t\t}\n\n\t\t// Move input on screen for focus, but hidden behind dialog\n\t\tthis._dialogInput.css( \"left\", ( this._pos[ 0 ] + 20 ) + \"px\" ).css( \"top\", this._pos[ 1 ] + \"px\" );\n\t\tinst.settings.onSelect = onSelect;\n\t\tthis._inDialog = true;\n\t\tthis.dpDiv.addClass( this._dialogClass );\n\t\tthis._showDatepicker( this._dialogInput[ 0 ] );\n\t\tif ( $.blockUI ) {\n\t\t\t$.blockUI( this.dpDiv );\n\t\t}\n\t\t$.data( this._dialogInput[ 0 ], \"datepicker\", inst );\n\t\treturn this;\n\t},\n\n\t/* Detach a datepicker from its control.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_destroyDatepicker: function( target ) {\n\t\tvar nodeName,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\t$.removeData( target, \"datepicker\" );\n\t\tif ( nodeName === \"input\" ) {\n\t\t\tinst.append.remove();\n\t\t\tinst.trigger.remove();\n\t\t\t$target.removeClass( this.markerClassName ).\n\t\t\t\toff( \"focus\", this._showDatepicker ).\n\t\t\t\toff( \"keydown\", this._doKeyDown ).\n\t\t\t\toff( \"keypress\", this._doKeyPress ).\n\t\t\t\toff( \"keyup\", this._doKeyUp );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\t$target.removeClass( this.markerClassName ).empty();\n\t\t}\n\n\t\tif ( datepicker_instActive === inst ) {\n\t\t\tdatepicker_instActive = null;\n\t\t}\n\t},\n\n\t/* Enable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_enableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = false;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = false; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"1.0\", cursor: \"\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().removeClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", false );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t},\n\n\t/* Disable the date picker to a jQuery selection.\n\t * @param target\telement - the target input field or division or span\n\t */\n\t_disableDatepicker: function( target ) {\n\t\tvar nodeName, inline,\n\t\t\t$target = $( target ),\n\t\t\tinst = $.data( target, \"datepicker\" );\n\n\t\tif ( !$target.hasClass( this.markerClassName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeName = target.nodeName.toLowerCase();\n\t\tif ( nodeName === \"input\" ) {\n\t\t\ttarget.disabled = true;\n\t\t\tinst.trigger.filter( \"button\" ).\n\t\t\t\teach( function() { this.disabled = true; } ).end().\n\t\t\t\tfilter( \"img\" ).css( { opacity: \"0.5\", cursor: \"default\" } );\n\t\t} else if ( nodeName === \"div\" || nodeName === \"span\" ) {\n\t\t\tinline = $target.children( \".\" + this._inlineClass );\n\t\t\tinline.children().addClass( \"ui-state-disabled\" );\n\t\t\tinline.find( \"select.ui-datepicker-month, select.ui-datepicker-year\" ).\n\t\t\t\tprop( \"disabled\", true );\n\t\t}\n\t\tthis._disabledInputs = $.map( this._disabledInputs,\n\t\t\tfunction( value ) { return ( value === target ? null : value ); } ); // delete entry\n\t\tthis._disabledInputs[ this._disabledInputs.length ] = target;\n\t},\n\n\t/* Is the first field in a jQuery collection disabled as a datepicker?\n\t * @param target\telement - the target input field or division or span\n\t * @return boolean - true if disabled, false if enabled\n\t */\n\t_isDisabledDatepicker: function( target ) {\n\t\tif ( !target ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( var i = 0; i < this._disabledInputs.length; i++ ) {\n\t\t\tif ( this._disabledInputs[ i ] === target ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\n\t/* Retrieve the instance data for the target control.\n\t * @param target element - the target input field or division or span\n\t * @return object - the associated instance data\n\t * @throws error if a jQuery problem getting data\n\t */\n\t_getInst: function( target ) {\n\t\ttry {\n\t\t\treturn $.data( target, \"datepicker\" );\n\t\t}\n\t\tcatch ( err ) {\n\t\t\tthrow \"Missing instance data for this datepicker\";\n\t\t}\n\t},\n\n\t/* Update or retrieve the settings for a date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t * @param name\tobject - the new settings to update or\n\t *\t\t\t\tstring - the name of the setting to change or retrieve,\n\t *\t\t\t\twhen retrieving also \"all\" for all instance settings or\n\t *\t\t\t\t\"defaults\" for all global defaults\n\t * @param value any - the new value for the setting\n\t *\t\t\t\t(omit if above is an object or to retrieve a value)\n\t */\n\t_optionDatepicker: function( target, name, value ) {\n\t\tvar settings, date, minDate, maxDate,\n\t\t\tinst = this._getInst( target );\n\n\t\tif ( arguments.length === 2 && typeof name === \"string\" ) {\n\t\t\treturn ( name === \"defaults\" ? $.extend( {}, $.datepicker._defaults ) :\n\t\t\t\t( inst ? ( name === \"all\" ? $.extend( {}, inst.settings ) :\n\t\t\t\tthis._get( inst, name ) ) : null ) );\n\t\t}\n\n\t\tsettings = name || {};\n\t\tif ( typeof name === \"string\" ) {\n\t\t\tsettings = {};\n\t\t\tsettings[ name ] = value;\n\t\t}\n\n\t\tif ( inst ) {\n\t\t\tif ( this._curInst === inst ) {\n\t\t\t\tthis._hideDatepicker();\n\t\t\t}\n\n\t\t\tdate = this._getDateDatepicker( target, true );\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" );\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" );\n\t\t\tdatepicker_extendRemove( inst.settings, settings );\n\n\t\t\t// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided\n\t\t\tif ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {\n\t\t\t\tinst.settings.minDate = this._formatDate( inst, minDate );\n\t\t\t}\n\t\t\tif ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {\n\t\t\t\tinst.settings.maxDate = this._formatDate( inst, maxDate );\n\t\t\t}\n\t\t\tif ( \"disabled\" in settings ) {\n\t\t\t\tif ( settings.disabled ) {\n\t\t\t\t\tthis._disableDatepicker( target );\n\t\t\t\t} else {\n\t\t\t\t\tthis._enableDatepicker( target );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._attachments( $( target ), inst );\n\t\t\tthis._autoSize( inst );\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateAlternate( inst );\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t// Change method deprecated\n\t_changeDatepicker: function( target, name, value ) {\n\t\tthis._optionDatepicker( target, name, value );\n\t},\n\n\t/* Redraw the date picker attached to an input field or division.\n\t * @param target element - the target input field or division or span\n\t */\n\t_refreshDatepicker: function( target ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t}\n\t},\n\n\t/* Set the dates for a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param date\tDate - the new date\n\t */\n\t_setDateDatepicker: function( target, date ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst ) {\n\t\t\tthis._setDate( inst, date );\n\t\t\tthis._updateDatepicker( inst );\n\t\t\tthis._updateAlternate( inst );\n\t\t}\n\t},\n\n\t/* Get the date(s) for the first entry in a jQuery selection.\n\t * @param target element - the target input field or division or span\n\t * @param noDefault boolean - true if no default date is to be used\n\t * @return Date - the current date\n\t */\n\t_getDateDatepicker: function( target, noDefault ) {\n\t\tvar inst = this._getInst( target );\n\t\tif ( inst && !inst.inline ) {\n\t\t\tthis._setDateFromField( inst, noDefault );\n\t\t}\n\t\treturn ( inst ? this._getDate( inst ) : null );\n\t},\n\n\t/* Handle keystrokes. */\n\t_doKeyDown: function( event ) {\n\t\tvar onSelect, dateStr, sel,\n\t\t\tinst = $.datepicker._getInst( event.target ),\n\t\t\thandled = true,\n\t\t\tisRTL = inst.dpDiv.is( \".ui-datepicker-rtl\" );\n\n\t\tinst._keyEvent = true;\n\t\tif ( $.datepicker._datepickerShowing ) {\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\tcase 9: $.datepicker._hideDatepicker();\n\t\t\t\t\t\thandled = false;\n\t\t\t\t\t\tbreak; // hide on tab out\n\t\t\t\tcase 13: sel = $( \"td.\" + $.datepicker._dayOverClass + \":not(.\" +\n\t\t\t\t\t\t\t\t\t$.datepicker._currentClass + \")\", inst.dpDiv );\n\t\t\t\t\t\tif ( sel[ 0 ] ) {\n\t\t\t\t\t\t\t$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonSelect = $.datepicker._get( inst, \"onSelect\" );\n\t\t\t\t\t\tif ( onSelect ) {\n\t\t\t\t\t\t\tdateStr = $.datepicker._formatDate( inst );\n\n\t\t\t\t\t\t\t// Trigger custom callback\n\t\t\t\t\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false; // don't submit the form\n\t\t\t\tcase 27: $.datepicker._hideDatepicker();\n\t\t\t\t\t\tbreak; // hide on escape\n\t\t\t\tcase 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // previous month/year on page up/+ ctrl\n\t\t\t\tcase 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\tbreak; // next month/year on page down/+ ctrl\n\t\t\t\tcase 35: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._clearDate( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // clear on ctrl or command +end\n\t\t\t\tcase 36: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._gotoToday( event.target );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // current on ctrl or command +home\n\t\t\t\tcase 37: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// -1 day on ctrl or command +left\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t-$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +left on Mac\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 38: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, -7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // -1 week on ctrl or command +up\n\t\t\t\tcase 39: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\n\t\t\t\t\t\t// +1 day on ctrl or command +right\n\t\t\t\t\t\tif ( event.originalEvent.altKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, ( event.ctrlKey ?\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepBigMonths\" ) :\n\t\t\t\t\t\t\t\t+$.datepicker._get( inst, \"stepMonths\" ) ), \"M\" );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// next month/year on alt +right\n\t\t\t\t\t\tbreak;\n\t\t\t\tcase 40: if ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\t\t\t$.datepicker._adjustDate( event.target, +7, \"D\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\n\t\t\t\t\t\tbreak; // +1 week on ctrl or command +down\n\t\t\t\tdefault: handled = false;\n\t\t\t}\n\t\t} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home\n\t\t\t$.datepicker._showDatepicker( this );\n\t\t} else {\n\t\t\thandled = false;\n\t\t}\n\n\t\tif ( handled ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t},\n\n\t/* Filter entered characters - based on date format. */\n\t_doKeyPress: function( event ) {\n\t\tvar chars, chr,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( $.datepicker._get( inst, \"constrainInput\" ) ) {\n\t\t\tchars = $.datepicker._possibleChars( $.datepicker._get( inst, \"dateFormat\" ) );\n\t\t\tchr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );\n\t\t\treturn event.ctrlKey || event.metaKey || ( chr < \" \" || !chars || chars.indexOf( chr ) > -1 );\n\t\t}\n\t},\n\n\t/* Synchronise manual entry and field/alternate field. */\n\t_doKeyUp: function( event ) {\n\t\tvar date,\n\t\t\tinst = $.datepicker._getInst( event.target );\n\n\t\tif ( inst.input.val() !== inst.lastVal ) {\n\t\t\ttry {\n\t\t\t\tdate = $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t( inst.input ? inst.input.val() : null ),\n\t\t\t\t\t$.datepicker._getFormatConfig( inst ) );\n\n\t\t\t\tif ( date ) { // only if valid\n\t\t\t\t\t$.datepicker._setDateFromField( inst );\n\t\t\t\t\t$.datepicker._updateAlternate( inst );\n\t\t\t\t\t$.datepicker._updateDatepicker( inst );\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch ( err ) {\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\n\t/* Pop-up the date picker for a given input field.\n\t * If false returned from beforeShow event handler do not show.\n\t * @param input element - the input field attached to the date picker or\n\t *\t\t\t\t\tevent - if triggered by focus\n\t */\n\t_showDatepicker: function( input ) {\n\t\tinput = input.target || input;\n\t\tif ( input.nodeName.toLowerCase() !== \"input\" ) { // find from button/image trigger\n\t\t\tinput = $( \"input\", input.parentNode )[ 0 ];\n\t\t}\n\n\t\tif ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here\n\t\t\treturn;\n\t\t}\n\n\t\tvar inst, beforeShow, beforeShowSettings, isFixed,\n\t\t\toffset, showAnim, duration;\n\n\t\tinst = $.datepicker._getInst( input );\n\t\tif ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {\n\t\t\t$.datepicker._curInst.dpDiv.stop( true, true );\n\t\t\tif ( inst && $.datepicker._datepickerShowing ) {\n\t\t\t\t$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );\n\t\t\t}\n\t\t}\n\n\t\tbeforeShow = $.datepicker._get( inst, \"beforeShow\" );\n\t\tbeforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};\n\t\tif ( beforeShowSettings === false ) {\n\t\t\treturn;\n\t\t}\n\t\tdatepicker_extendRemove( inst.settings, beforeShowSettings );\n\n\t\tinst.lastVal = null;\n\t\t$.datepicker._lastInput = input;\n\t\t$.datepicker._setDateFromField( inst );\n\n\t\tif ( $.datepicker._inDialog ) { // hide cursor\n\t\t\tinput.value = \"\";\n\t\t}\n\t\tif ( !$.datepicker._pos ) { // position below input\n\t\t\t$.datepicker._pos = $.datepicker._findPos( input );\n\t\t\t$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height\n\t\t}\n\n\t\tisFixed = false;\n\t\t$( input ).parents().each( function() {\n\t\t\tisFixed |= $( this ).css( \"position\" ) === \"fixed\";\n\t\t\treturn !isFixed;\n\t\t} );\n\n\t\toffset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };\n\t\t$.datepicker._pos = null;\n\n\t\t//to avoid flashes on Firefox\n\t\tinst.dpDiv.empty();\n\n\t\t// determine sizing offscreen\n\t\tinst.dpDiv.css( { position: \"absolute\", display: \"block\", top: \"-1000px\" } );\n\t\t$.datepicker._updateDatepicker( inst );\n\n\t\t// fix width for dynamic number of date pickers\n\t\t// and adjust position before showing\n\t\toffset = $.datepicker._checkOffset( inst, offset, isFixed );\n\t\tinst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?\n\t\t\t\"static\" : ( isFixed ? \"fixed\" : \"absolute\" ) ), display: \"none\",\n\t\t\tleft: offset.left + \"px\", top: offset.top + \"px\" } );\n\n\t\tif ( !inst.inline ) {\n\t\t\tshowAnim = $.datepicker._get( inst, \"showAnim\" );\n\t\t\tduration = $.datepicker._get( inst, \"duration\" );\n\t\t\tinst.dpDiv.css( \"z-index\", datepicker_getZindex( $( input ) ) + 1 );\n\t\t\t$.datepicker._datepickerShowing = true;\n\n\t\t\tif ( $.effects && $.effects.effect[ showAnim ] ) {\n\t\t\t\tinst.dpDiv.show( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ showAnim || \"show\" ]( showAnim ? duration : null );\n\t\t\t}\n\n\t\t\tif ( $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\t\tinst.input.trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t$.datepicker._curInst = inst;\n\t\t}\n\t},\n\n\t/* Generate the date picker content. */\n\t_updateDatepicker: function( inst ) {\n\t\tthis.maxRows = 4; //Reset the max number of rows being displayed (see #7043)\n\t\tdatepicker_instActive = inst; // for delegate hover events\n\t\tinst.dpDiv.empty().append( this._generateHTML( inst ) );\n\t\tthis._attachHandlers( inst );\n\n\t\tvar origyearshtml,\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tcols = numMonths[ 1 ],\n\t\t\twidth = 17,\n\t\t\tactiveCell = inst.dpDiv.find( \".\" + this._dayOverClass + \" a\" );\n\n\t\tif ( activeCell.length > 0 ) {\n\t\t\tdatepicker_handleMouseover.apply( activeCell.get( 0 ) );\n\t\t}\n\n\t\tinst.dpDiv.removeClass( \"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\" ).width( \"\" );\n\t\tif ( cols > 1 ) {\n\t\t\tinst.dpDiv.addClass( \"ui-datepicker-multi-\" + cols ).css( \"width\", ( width * cols ) + \"em\" );\n\t\t}\n\t\tinst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-multi\" );\n\t\tinst.dpDiv[ ( this._get( inst, \"isRTL\" ) ? \"add\" : \"remove\" ) +\n\t\t\t\"Class\" ]( \"ui-datepicker-rtl\" );\n\n\t\tif ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {\n\t\t\tinst.input.trigger( \"focus\" );\n\t\t}\n\n\t\t// Deffered render of the years select (to avoid flashes on Firefox)\n\t\tif ( inst.yearshtml ) {\n\t\t\torigyearshtml = inst.yearshtml;\n\t\t\tsetTimeout( function() {\n\n\t\t\t\t//assure that inst.yearshtml didn't change.\n\t\t\t\tif ( origyearshtml === inst.yearshtml && inst.yearshtml ) {\n\t\t\t\t\tinst.dpDiv.find( \"select.ui-datepicker-year:first\" ).replaceWith( inst.yearshtml );\n\t\t\t\t}\n\t\t\t\torigyearshtml = inst.yearshtml = null;\n\t\t\t}, 0 );\n\t\t}\n\t},\n\n\t// #6694 - don't focus the input if it's already focused\n\t// this breaks the change event in IE\n\t// Support: IE and jQuery <1.9\n\t_shouldFocusInput: function( inst ) {\n\t\treturn inst.input && inst.input.is( \":visible\" ) && !inst.input.is( \":disabled\" ) && !inst.input.is( \":focus\" );\n\t},\n\n\t/* Check positioning to remain on screen. */\n\t_checkOffset: function( inst, offset, isFixed ) {\n\t\tvar dpWidth = inst.dpDiv.outerWidth(),\n\t\t\tdpHeight = inst.dpDiv.outerHeight(),\n\t\t\tinputWidth = inst.input ? inst.input.outerWidth() : 0,\n\t\t\tinputHeight = inst.input ? inst.input.outerHeight() : 0,\n\t\t\tviewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),\n\t\t\tviewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );\n\n\t\toffset.left -= ( this._get( inst, \"isRTL\" ) ? ( dpWidth - inputWidth ) : 0 );\n\t\toffset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;\n\t\toffset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;\n\n\t\t// Now check if datepicker is showing outside window viewport - move to a better place if so.\n\t\toffset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?\n\t\t\tMath.abs( offset.left + dpWidth - viewWidth ) : 0 );\n\t\toffset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?\n\t\t\tMath.abs( dpHeight + inputHeight ) : 0 );\n\n\t\treturn offset;\n\t},\n\n\t/* Find an object's position on the screen. */\n\t_findPos: function( obj ) {\n\t\tvar position,\n\t\t\tinst = this._getInst( obj ),\n\t\t\tisRTL = this._get( inst, \"isRTL\" );\n\n\t\twhile ( obj && ( obj.type === \"hidden\" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {\n\t\t\tobj = obj[ isRTL ? \"previousSibling\" : \"nextSibling\" ];\n\t\t}\n\n\t\tposition = $( obj ).offset();\n\t\treturn [ position.left, position.top ];\n\t},\n\n\t/* Hide the date picker from view.\n\t * @param input element - the input field attached to the date picker\n\t */\n\t_hideDatepicker: function( input ) {\n\t\tvar showAnim, duration, postProcess, onClose,\n\t\t\tinst = this._curInst;\n\n\t\tif ( !inst || ( input && inst !== $.data( input, \"datepicker\" ) ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this._datepickerShowing ) {\n\t\t\tshowAnim = this._get( inst, \"showAnim\" );\n\t\t\tduration = this._get( inst, \"duration\" );\n\t\t\tpostProcess = function() {\n\t\t\t\t$.datepicker._tidyDialog( inst );\n\t\t\t};\n\n\t\t\t// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed\n\t\t\tif ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {\n\t\t\t\tinst.dpDiv.hide( showAnim, $.datepicker._get( inst, \"showOptions\" ), duration, postProcess );\n\t\t\t} else {\n\t\t\t\tinst.dpDiv[ ( showAnim === \"slideDown\" ? \"slideUp\" :\n\t\t\t\t\t( showAnim === \"fadeIn\" ? \"fadeOut\" : \"hide\" ) ) ]( ( showAnim ? duration : null ), postProcess );\n\t\t\t}\n\n\t\t\tif ( !showAnim ) {\n\t\t\t\tpostProcess();\n\t\t\t}\n\t\t\tthis._datepickerShowing = false;\n\n\t\t\tonClose = this._get( inst, \"onClose\" );\n\t\t\tif ( onClose ) {\n\t\t\t\tonClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : \"\" ), inst ] );\n\t\t\t}\n\n\t\t\tthis._lastInput = null;\n\t\t\tif ( this._inDialog ) {\n\t\t\t\tthis._dialogInput.css( { position: \"absolute\", left: \"0\", top: \"-100px\" } );\n\t\t\t\tif ( $.blockUI ) {\n\t\t\t\t\t$.unblockUI();\n\t\t\t\t\t$( \"body\" ).append( this.dpDiv );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._inDialog = false;\n\t\t}\n\t},\n\n\t/* Tidy up after a dialog display. */\n\t_tidyDialog: function( inst ) {\n\t\tinst.dpDiv.removeClass( this._dialogClass ).off( \".ui-datepicker-calendar\" );\n\t},\n\n\t/* Close date picker if clicked elsewhere. */\n\t_checkExternalClick: function( event ) {\n\t\tif ( !$.datepicker._curInst ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $target = $( event.target ),\n\t\t\tinst = $.datepicker._getInst( $target[ 0 ] );\n\n\t\tif ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&\n\t\t\t\t$target.parents( \"#\" + $.datepicker._mainDivId ).length === 0 &&\n\t\t\t\t!$target.hasClass( $.datepicker.markerClassName ) &&\n\t\t\t\t!$target.closest( \".\" + $.datepicker._triggerClass ).length &&\n\t\t\t\t$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||\n\t\t\t( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {\n\t\t\t\t$.datepicker._hideDatepicker();\n\t\t}\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustDate: function( id, offset, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\t\tthis._adjustInstDate( inst, offset +\n\t\t\t( period === \"M\" ? this._get( inst, \"showCurrentAtPos\" ) : 0 ), // undo positioning\n\t\t\tperiod );\n\t\tthis._updateDatepicker( inst );\n\t},\n\n\t/* Action for current link. */\n\t_gotoToday: function( id ) {\n\t\tvar date,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tif ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ) {\n\t\t\tinst.selectedDay = inst.currentDay;\n\t\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth;\n\t\t\tinst.drawYear = inst.selectedYear = inst.currentYear;\n\t\t} else {\n\t\t\tdate = new Date();\n\t\t\tinst.selectedDay = date.getDate();\n\t\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\t}\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a new month/year. */\n\t_selectMonthYear: function( id, select, period ) {\n\t\tvar target = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tinst[ \"selected\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\tinst[ \"draw\" + ( period === \"M\" ? \"Month\" : \"Year\" ) ] =\n\t\t\tparseInt( select.options[ select.selectedIndex ].value, 10 );\n\n\t\tthis._notifyChange( inst );\n\t\tthis._adjustDate( target );\n\t},\n\n\t/* Action for selecting a day. */\n\t_selectDay: function( id, month, year, td ) {\n\t\tvar inst,\n\t\t\ttarget = $( id );\n\n\t\tif ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tinst = this._getInst( target[ 0 ] );\n\t\tinst.selectedDay = inst.currentDay = $( \"a\", td ).html();\n\t\tinst.selectedMonth = inst.currentMonth = month;\n\t\tinst.selectedYear = inst.currentYear = year;\n\t\tthis._selectDate( id, this._formatDate( inst,\n\t\t\tinst.currentDay, inst.currentMonth, inst.currentYear ) );\n\t},\n\n\t/* Erase the input field and hide the date picker. */\n\t_clearDate: function( id ) {\n\t\tvar target = $( id );\n\t\tthis._selectDate( target, \"\" );\n\t},\n\n\t/* Update the input field with the selected date. */\n\t_selectDate: function( id, dateStr ) {\n\t\tvar onSelect,\n\t\t\ttarget = $( id ),\n\t\t\tinst = this._getInst( target[ 0 ] );\n\n\t\tdateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( dateStr );\n\t\t}\n\t\tthis._updateAlternate( inst );\n\n\t\tonSelect = this._get( inst, \"onSelect\" );\n\t\tif ( onSelect ) {\n\t\t\tonSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] ); // trigger custom callback\n\t\t} else if ( inst.input ) {\n\t\t\tinst.input.trigger( \"change\" ); // fire the change event\n\t\t}\n\n\t\tif ( inst.inline ) {\n\t\t\tthis._updateDatepicker( inst );\n\t\t} else {\n\t\t\tthis._hideDatepicker();\n\t\t\tthis._lastInput = inst.input[ 0 ];\n\t\t\tif ( typeof( inst.input[ 0 ] ) !== \"object\" ) {\n\t\t\t\tinst.input.trigger( \"focus\" ); // restore focus\n\t\t\t}\n\t\t\tthis._lastInput = null;\n\t\t}\n\t},\n\n\t/* Update any alternate field to synchronise with the main field. */\n\t_updateAlternate: function( inst ) {\n\t\tvar altFormat, date, dateStr,\n\t\t\taltField = this._get( inst, \"altField\" );\n\n\t\tif ( altField ) { // update alternate field too\n\t\t\taltFormat = this._get( inst, \"altFormat\" ) || this._get( inst, \"dateFormat\" );\n\t\t\tdate = this._getDate( inst );\n\t\t\tdateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );\n\t\t\t$( altField ).val( dateStr );\n\t\t}\n\t},\n\n\t/* Set as beforeShowDay function to prevent selection of weekends.\n\t * @param date Date - the date to customise\n\t * @return [boolean, string] - is this date selectable?, what is its CSS class?\n\t */\n\tnoWeekends: function( date ) {\n\t\tvar day = date.getDay();\n\t\treturn [ ( day > 0 && day < 6 ), \"\" ];\n\t},\n\n\t/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.\n\t * @param date Date - the date to get the week for\n\t * @return number - the number of the week within the year that contains this date\n\t */\n\tiso8601Week: function( date ) {\n\t\tvar time,\n\t\t\tcheckDate = new Date( date.getTime() );\n\n\t\t// Find Thursday of this week starting on Monday\n\t\tcheckDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );\n\n\t\ttime = checkDate.getTime();\n\t\tcheckDate.setMonth( 0 ); // Compare with Jan 1\n\t\tcheckDate.setDate( 1 );\n\t\treturn Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;\n\t},\n\n\t/* Parse a string value into a date object.\n\t * See formatDate below for the possible formats.\n\t *\n\t * @param format string - the expected format of the date\n\t * @param value string - the date in the above format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tshortYearCutoff number - the cutoff year for determining the century (optional)\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return Date - the extracted date value or null if value is blank\n\t */\n\tparseDate: function( format, value, settings ) {\n\t\tif ( format == null || value == null ) {\n\t\t\tthrow \"Invalid arguments\";\n\t\t}\n\n\t\tvalue = ( typeof value === \"object\" ? value.toString() : value + \"\" );\n\t\tif ( value === \"\" ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar iFormat, dim, extra,\n\t\t\tiValue = 0,\n\t\t\tshortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,\n\t\t\tshortYearCutoff = ( typeof shortYearCutoffTemp !== \"string\" ? shortYearCutoffTemp :\n\t\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\t\t\tyear = -1,\n\t\t\tmonth = -1,\n\t\t\tday = -1,\n\t\t\tdoy = -1,\n\t\t\tliteral = false,\n\t\t\tdate,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Extract a number from the string value\n\t\t\tgetNumber = function( match ) {\n\t\t\t\tvar isDoubled = lookAhead( match ),\n\t\t\t\t\tsize = ( match === \"@\" ? 14 : ( match === \"!\" ? 20 :\n\t\t\t\t\t( match === \"y\" && isDoubled ? 4 : ( match === \"o\" ? 3 : 2 ) ) ) ),\n\t\t\t\t\tminSize = ( match === \"y\" ? size : 1 ),\n\t\t\t\t\tdigits = new RegExp( \"^\\\\d{\" + minSize + \",\" + size + \"}\" ),\n\t\t\t\t\tnum = value.substring( iValue ).match( digits );\n\t\t\t\tif ( !num ) {\n\t\t\t\t\tthrow \"Missing number at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue += num[ 0 ].length;\n\t\t\t\treturn parseInt( num[ 0 ], 10 );\n\t\t\t},\n\n\t\t\t// Extract a name from the string value and convert to an index\n\t\t\tgetName = function( match, shortNames, longNames ) {\n\t\t\t\tvar index = -1,\n\t\t\t\t\tnames = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {\n\t\t\t\t\t\treturn [ [ k, v ] ];\n\t\t\t\t\t} ).sort( function( a, b ) {\n\t\t\t\t\t\treturn -( a[ 1 ].length - b[ 1 ].length );\n\t\t\t\t\t} );\n\n\t\t\t\t$.each( names, function( i, pair ) {\n\t\t\t\t\tvar name = pair[ 1 ];\n\t\t\t\t\tif ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {\n\t\t\t\t\t\tindex = pair[ 0 ];\n\t\t\t\t\t\tiValue += name.length;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t} else {\n\t\t\t\t\tthrow \"Unknown name at position \" + iValue;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Confirm that a literal character matches the string value\n\t\t\tcheckLiteral = function() {\n\t\t\t\tif ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {\n\t\t\t\t\tthrow \"Unexpected literal at position \" + iValue;\n\t\t\t\t}\n\t\t\t\tiValue++;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\tday = getNumber( \"d\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\tgetName( \"D\", dayNamesShort, dayNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\tdoy = getNumber( \"o\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\tmonth = getNumber( \"m\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\tmonth = getName( \"M\", monthNamesShort, monthNames );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\tyear = getNumber( \"y\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\tdate = new Date( getNumber( \"@\" ) );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\tdate = new Date( ( getNumber( \"!\" ) - this._ticksTo1970 ) / 10000 );\n\t\t\t\t\t\tyear = date.getFullYear();\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\n\t\t\t\t\t\tday = date.getDate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcheckLiteral();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( iValue < value.length ) {\n\t\t\textra = value.substr( iValue );\n\t\t\tif ( !/^\\s+/.test( extra ) ) {\n\t\t\t\tthrow \"Extra/unparsed characters found in date: \" + extra;\n\t\t\t}\n\t\t}\n\n\t\tif ( year === -1 ) {\n\t\t\tyear = new Date().getFullYear();\n\t\t} else if ( year < 100 ) {\n\t\t\tyear += new Date().getFullYear() - new Date().getFullYear() % 100 +\n\t\t\t\t( year <= shortYearCutoff ? 0 : -100 );\n\t\t}\n\n\t\tif ( doy > -1 ) {\n\t\t\tmonth = 1;\n\t\t\tday = doy;\n\t\t\tdo {\n\t\t\t\tdim = this._getDaysInMonth( year, month - 1 );\n\t\t\t\tif ( day <= dim ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmonth++;\n\t\t\t\tday -= dim;\n\t\t\t} while ( true );\n\t\t}\n\n\t\tdate = this._daylightSavingAdjust( new Date( year, month - 1, day ) );\n\t\tif ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {\n\t\t\tthrow \"Invalid date\"; // E.g. 31/02/00\n\t\t}\n\t\treturn date;\n\t},\n\n\t/* Standard date formats. */\n\tATOM: \"yy-mm-dd\", // RFC 3339 (ISO 8601)\n\tCOOKIE: \"D, dd M yy\",\n\tISO_8601: \"yy-mm-dd\",\n\tRFC_822: \"D, d M y\",\n\tRFC_850: \"DD, dd-M-y\",\n\tRFC_1036: \"D, d M y\",\n\tRFC_1123: \"D, d M yy\",\n\tRFC_2822: \"D, d M yy\",\n\tRSS: \"D, d M y\", // RFC 822\n\tTICKS: \"!\",\n\tTIMESTAMP: \"@\",\n\tW3C: \"yy-mm-dd\", // ISO 8601\n\n\t_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +\n\t\tMath.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),\n\n\t/* Format a date object into a string value.\n\t * The format can be combinations of the following:\n\t * d - day of month (no leading zero)\n\t * dd - day of month (two digit)\n\t * o - day of year (no leading zeros)\n\t * oo - day of year (three digit)\n\t * D - day name short\n\t * DD - day name long\n\t * m - month of year (no leading zero)\n\t * mm - month of year (two digit)\n\t * M - month name short\n\t * MM - month name long\n\t * y - year (two digit)\n\t * yy - year (four digit)\n\t * @ - Unix timestamp (ms since 01/01/1970)\n\t * ! - Windows ticks (100ns since 01/01/0001)\n\t * \"...\" - literal text\n\t * '' - single quote\n\t *\n\t * @param format string - the desired format of the date\n\t * @param date Date - the date value to format\n\t * @param settings Object - attributes include:\n\t *\t\t\t\t\tdayNamesShort\tstring[7] - abbreviated names of the days from Sunday (optional)\n\t *\t\t\t\t\tdayNames\t\tstring[7] - names of the days from Sunday (optional)\n\t *\t\t\t\t\tmonthNamesShort string[12] - abbreviated names of the months (optional)\n\t *\t\t\t\t\tmonthNames\t\tstring[12] - names of the months (optional)\n\t * @return string - the date in the above format\n\t */\n\tformatDate: function( format, date, settings ) {\n\t\tif ( !date ) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tvar iFormat,\n\t\t\tdayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,\n\t\t\tdayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,\n\t\t\tmonthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,\n\t\t\tmonthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t},\n\n\t\t\t// Format a number, with leading zero if necessary\n\t\t\tformatNumber = function( match, value, len ) {\n\t\t\t\tvar num = \"\" + value;\n\t\t\t\tif ( lookAhead( match ) ) {\n\t\t\t\t\twhile ( num.length < len ) {\n\t\t\t\t\t\tnum = \"0\" + num;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn num;\n\t\t\t},\n\n\t\t\t// Format a name, short or long as requested\n\t\t\tformatName = function( match, value, shortNames, longNames ) {\n\t\t\t\treturn ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );\n\t\t\t},\n\t\t\toutput = \"\",\n\t\t\tliteral = false;\n\n\t\tif ( date ) {\n\t\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\t\tif ( literal ) {\n\t\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\t\tliteral = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\t\tcase \"d\":\n\t\t\t\t\t\t\toutput += formatNumber( \"d\", date.getDate(), 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"D\":\n\t\t\t\t\t\t\toutput += formatName( \"D\", date.getDay(), dayNamesShort, dayNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\t\toutput += formatNumber( \"o\",\n\t\t\t\t\t\t\t\tMath.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"m\":\n\t\t\t\t\t\t\toutput += formatNumber( \"m\", date.getMonth() + 1, 2 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"M\":\n\t\t\t\t\t\t\toutput += formatName( \"M\", date.getMonth(), monthNamesShort, monthNames );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\t\toutput += ( lookAhead( \"y\" ) ? date.getFullYear() :\n\t\t\t\t\t\t\t\t( date.getFullYear() % 100 < 10 ? \"0\" : \"\" ) + date.getFullYear() % 100 );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"@\":\n\t\t\t\t\t\t\toutput += date.getTime();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"!\":\n\t\t\t\t\t\t\toutput += date.getTime() * 10000 + this._ticksTo1970;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\t\toutput += \"'\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toutput += format.charAt( iFormat );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t},\n\n\t/* Extract all possible characters from the date format. */\n\t_possibleChars: function( format ) {\n\t\tvar iFormat,\n\t\t\tchars = \"\",\n\t\t\tliteral = false,\n\n\t\t\t// Check whether a format character is doubled\n\t\t\tlookAhead = function( match ) {\n\t\t\t\tvar matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );\n\t\t\t\tif ( matches ) {\n\t\t\t\t\tiFormat++;\n\t\t\t\t}\n\t\t\t\treturn matches;\n\t\t\t};\n\n\t\tfor ( iFormat = 0; iFormat < format.length; iFormat++ ) {\n\t\t\tif ( literal ) {\n\t\t\t\tif ( format.charAt( iFormat ) === \"'\" && !lookAhead( \"'\" ) ) {\n\t\t\t\t\tliteral = false;\n\t\t\t\t} else {\n\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch ( format.charAt( iFormat ) ) {\n\t\t\t\t\tcase \"d\": case \"m\": case \"y\": case \"@\":\n\t\t\t\t\t\tchars += \"0123456789\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"D\": case \"M\":\n\t\t\t\t\t\treturn null; // Accept anything\n\t\t\t\t\tcase \"'\":\n\t\t\t\t\t\tif ( lookAhead( \"'\" ) ) {\n\t\t\t\t\t\t\tchars += \"'\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tliteral = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tchars += format.charAt( iFormat );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn chars;\n\t},\n\n\t/* Get a setting value, defaulting if necessary. */\n\t_get: function( inst, name ) {\n\t\treturn inst.settings[ name ] !== undefined ?\n\t\t\tinst.settings[ name ] : this._defaults[ name ];\n\t},\n\n\t/* Parse existing date and initialise date picker. */\n\t_setDateFromField: function( inst, noDefault ) {\n\t\tif ( inst.input.val() === inst.lastVal ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar dateFormat = this._get( inst, \"dateFormat\" ),\n\t\t\tdates = inst.lastVal = inst.input ? inst.input.val() : null,\n\t\t\tdefaultDate = this._getDefaultDate( inst ),\n\t\t\tdate = defaultDate,\n\t\t\tsettings = this._getFormatConfig( inst );\n\n\t\ttry {\n\t\t\tdate = this.parseDate( dateFormat, dates, settings ) || defaultDate;\n\t\t} catch ( event ) {\n\t\t\tdates = ( noDefault ? \"\" : dates );\n\t\t}\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tinst.currentDay = ( dates ? date.getDate() : 0 );\n\t\tinst.currentMonth = ( dates ? date.getMonth() : 0 );\n\t\tinst.currentYear = ( dates ? date.getFullYear() : 0 );\n\t\tthis._adjustInstDate( inst );\n\t},\n\n\t/* Retrieve the default date shown on opening. */\n\t_getDefaultDate: function( inst ) {\n\t\treturn this._restrictMinMax( inst,\n\t\t\tthis._determineDate( inst, this._get( inst, \"defaultDate\" ), new Date() ) );\n\t},\n\n\t/* A date may be specified as an exact value or a relative one. */\n\t_determineDate: function( inst, date, defaultDate ) {\n\t\tvar offsetNumeric = function( offset ) {\n\t\t\t\tvar date = new Date();\n\t\t\t\tdate.setDate( date.getDate() + offset );\n\t\t\t\treturn date;\n\t\t\t},\n\t\t\toffsetString = function( offset ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn $.datepicker.parseDate( $.datepicker._get( inst, \"dateFormat\" ),\n\t\t\t\t\t\toffset, $.datepicker._getFormatConfig( inst ) );\n\t\t\t\t}\n\t\t\t\tcatch ( e ) {\n\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\n\t\t\t\tvar date = ( offset.toLowerCase().match( /^c/ ) ?\n\t\t\t\t\t$.datepicker._getDate( inst ) : null ) || new Date(),\n\t\t\t\t\tyear = date.getFullYear(),\n\t\t\t\t\tmonth = date.getMonth(),\n\t\t\t\t\tday = date.getDate(),\n\t\t\t\t\tpattern = /([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g,\n\t\t\t\t\tmatches = pattern.exec( offset );\n\n\t\t\t\twhile ( matches ) {\n\t\t\t\t\tswitch ( matches[ 2 ] || \"d\" ) {\n\t\t\t\t\t\tcase \"d\" : case \"D\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ); break;\n\t\t\t\t\t\tcase \"w\" : case \"W\" :\n\t\t\t\t\t\t\tday += parseInt( matches[ 1 ], 10 ) * 7; break;\n\t\t\t\t\t\tcase \"m\" : case \"M\" :\n\t\t\t\t\t\t\tmonth += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"y\": case \"Y\" :\n\t\t\t\t\t\t\tyear += parseInt( matches[ 1 ], 10 );\n\t\t\t\t\t\t\tday = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmatches = pattern.exec( offset );\n\t\t\t\t}\n\t\t\t\treturn new Date( year, month, day );\n\t\t\t},\n\t\t\tnewDate = ( date == null || date === \"\" ? defaultDate : ( typeof date === \"string\" ? offsetString( date ) :\n\t\t\t\t( typeof date === \"number\" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );\n\n\t\tnewDate = ( newDate && newDate.toString() === \"Invalid Date\" ? defaultDate : newDate );\n\t\tif ( newDate ) {\n\t\t\tnewDate.setHours( 0 );\n\t\t\tnewDate.setMinutes( 0 );\n\t\t\tnewDate.setSeconds( 0 );\n\t\t\tnewDate.setMilliseconds( 0 );\n\t\t}\n\t\treturn this._daylightSavingAdjust( newDate );\n\t},\n\n\t/* Handle switch to/from daylight saving.\n\t * Hours may be non-zero on daylight saving cut-over:\n\t * > 12 when midnight changeover, but then cannot generate\n\t * midnight datetime, so jump to 1AM, otherwise reset.\n\t * @param date (Date) the date to check\n\t * @return (Date) the corrected date\n\t */\n\t_daylightSavingAdjust: function( date ) {\n\t\tif ( !date ) {\n\t\t\treturn null;\n\t\t}\n\t\tdate.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );\n\t\treturn date;\n\t},\n\n\t/* Set the date(s) directly. */\n\t_setDate: function( inst, date, noChange ) {\n\t\tvar clear = !date,\n\t\t\torigMonth = inst.selectedMonth,\n\t\t\torigYear = inst.selectedYear,\n\t\t\tnewDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );\n\n\t\tinst.selectedDay = inst.currentDay = newDate.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();\n\t\tinst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();\n\t\tif ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t\tthis._adjustInstDate( inst );\n\t\tif ( inst.input ) {\n\t\t\tinst.input.val( clear ? \"\" : this._formatDate( inst ) );\n\t\t}\n\t},\n\n\t/* Retrieve the date(s) directly. */\n\t_getDate: function( inst ) {\n\t\tvar startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === \"\" ) ? null :\n\t\t\tthis._daylightSavingAdjust( new Date(\n\t\t\tinst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\t\treturn startDate;\n\t},\n\n\t/* Attach the onxxx handlers. These are declared statically so\n\t * they work with static code transformers like Caja.\n\t */\n\t_attachHandlers: function( inst ) {\n\t\tvar stepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tid = \"#\" + inst.id.replace( /\\\\\\\\/g, \"\\\\\" );\n\t\tinst.dpDiv.find( \"[data-handler]\" ).map( function() {\n\t\t\tvar handler = {\n\t\t\t\tprev: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, -stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\tnext: function() {\n\t\t\t\t\t$.datepicker._adjustDate( id, +stepMonths, \"M\" );\n\t\t\t\t},\n\t\t\t\thide: function() {\n\t\t\t\t\t$.datepicker._hideDatepicker();\n\t\t\t\t},\n\t\t\t\ttoday: function() {\n\t\t\t\t\t$.datepicker._gotoToday( id );\n\t\t\t\t},\n\t\t\t\tselectDay: function() {\n\t\t\t\t\t$.datepicker._selectDay( id, +this.getAttribute( \"data-month\" ), +this.getAttribute( \"data-year\" ), this );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectMonth: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"M\" );\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t\tselectYear: function() {\n\t\t\t\t\t$.datepicker._selectMonthYear( id, this, \"Y\" );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\t\t\t$( this ).on( this.getAttribute( \"data-event\" ), handler[ this.getAttribute( \"data-handler\" ) ] );\n\t\t} );\n\t},\n\n\t/* Generate the HTML for the current state of the date picker. */\n\t_generateHTML: function( inst ) {\n\t\tvar maxDraw, prevText, prev, nextText, next, currentText, gotoDate,\n\t\t\tcontrols, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,\n\t\t\tmonthNames, monthNamesShort, beforeShowDay, showOtherMonths,\n\t\t\tselectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,\n\t\t\tcornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,\n\t\t\tprintDate, dRow, tbody, daySettings, otherMonth, unselectable,\n\t\t\ttempDate = new Date(),\n\t\t\ttoday = this._daylightSavingAdjust(\n\t\t\t\tnew Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time\n\t\t\tisRTL = this._get( inst, \"isRTL\" ),\n\t\t\tshowButtonPanel = this._get( inst, \"showButtonPanel\" ),\n\t\t\thideIfNoPrevNext = this._get( inst, \"hideIfNoPrevNext\" ),\n\t\t\tnavigationAsDateFormat = this._get( inst, \"navigationAsDateFormat\" ),\n\t\t\tnumMonths = this._getNumberOfMonths( inst ),\n\t\t\tshowCurrentAtPos = this._get( inst, \"showCurrentAtPos\" ),\n\t\t\tstepMonths = this._get( inst, \"stepMonths\" ),\n\t\t\tisMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),\n\t\t\tcurrentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :\n\t\t\t\tnew Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tdrawMonth = inst.drawMonth - showCurrentAtPos,\n\t\t\tdrawYear = inst.drawYear;\n\n\t\tif ( drawMonth < 0 ) {\n\t\t\tdrawMonth += 12;\n\t\t\tdrawYear--;\n\t\t}\n\t\tif ( maxDate ) {\n\t\t\tmaxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),\n\t\t\t\tmaxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );\n\t\t\tmaxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );\n\t\t\twhile ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {\n\t\t\t\tdrawMonth--;\n\t\t\t\tif ( drawMonth < 0 ) {\n\t\t\t\t\tdrawMonth = 11;\n\t\t\t\t\tdrawYear--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinst.drawMonth = drawMonth;\n\t\tinst.drawYear = drawYear;\n\n\t\tprevText = this._get( inst, \"prevText\" );\n\t\tprevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tprev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?\n\t\t\t\"\" + prevText + \"\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"\" + prevText + \"\" ) );\n\n\t\tnextText = this._get( inst, \"nextText\" );\n\t\tnextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,\n\t\t\tthis._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),\n\t\t\tthis._getFormatConfig( inst ) ) );\n\n\t\tnext = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?\n\t\t\t\"\" + nextText + \"\" :\n\t\t\t( hideIfNoPrevNext ? \"\" : \"\" + nextText + \"\" ) );\n\n\t\tcurrentText = this._get( inst, \"currentText\" );\n\t\tgotoDate = ( this._get( inst, \"gotoCurrent\" ) && inst.currentDay ? currentDate : today );\n\t\tcurrentText = ( !navigationAsDateFormat ? currentText :\n\t\t\tthis.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );\n\n\t\tcontrols = ( !inst.inline ? \"\" : \"\" );\n\n\t\tbuttonPanel = ( showButtonPanel ) ? \"
\" + ( isRTL ? controls : \"\" ) +\n\t\t\t( this._isInRange( inst, gotoDate ) ? \"\" : \"\" ) + ( isRTL ? \"\" : controls ) + \"
\" : \"\";\n\n\t\tfirstDay = parseInt( this._get( inst, \"firstDay\" ), 10 );\n\t\tfirstDay = ( isNaN( firstDay ) ? 0 : firstDay );\n\n\t\tshowWeek = this._get( inst, \"showWeek\" );\n\t\tdayNames = this._get( inst, \"dayNames\" );\n\t\tdayNamesMin = this._get( inst, \"dayNamesMin\" );\n\t\tmonthNames = this._get( inst, \"monthNames\" );\n\t\tmonthNamesShort = this._get( inst, \"monthNamesShort\" );\n\t\tbeforeShowDay = this._get( inst, \"beforeShowDay\" );\n\t\tshowOtherMonths = this._get( inst, \"showOtherMonths\" );\n\t\tselectOtherMonths = this._get( inst, \"selectOtherMonths\" );\n\t\tdefaultDate = this._getDefaultDate( inst );\n\t\thtml = \"\";\n\n\t\tfor ( row = 0; row < numMonths[ 0 ]; row++ ) {\n\t\t\tgroup = \"\";\n\t\t\tthis.maxRows = 4;\n\t\t\tfor ( col = 0; col < numMonths[ 1 ]; col++ ) {\n\t\t\t\tselectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );\n\t\t\t\tcornerClass = \" ui-corner-all\";\n\t\t\t\tcalender = \"\";\n\t\t\t\tif ( isMultiMonth ) {\n\t\t\t\t\tcalender += \"
\";\n\t\t\t\t}\n\t\t\t\tcalender += \"
\" +\n\t\t\t\t\t( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : \"\" ) +\n\t\t\t\t\t( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : \"\" ) +\n\t\t\t\t\tthis._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\t\t\trow > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"\";\n\t\t\t\tthead = ( showWeek ? \"\" : \"\" );\n\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // days of the week\n\t\t\t\t\tday = ( dow + firstDay ) % 7;\n\t\t\t\t\tthead += \"\";\n\t\t\t\t}\n\t\t\t\tcalender += thead + \"\";\n\t\t\t\tdaysInMonth = this._getDaysInMonth( drawYear, drawMonth );\n\t\t\t\tif ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {\n\t\t\t\t\tinst.selectedDay = Math.min( inst.selectedDay, daysInMonth );\n\t\t\t\t}\n\t\t\t\tleadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;\n\t\t\t\tcurRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate\n\t\t\t\tnumRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)\n\t\t\t\tthis.maxRows = numRows;\n\t\t\t\tprintDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );\n\t\t\t\tfor ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows\n\t\t\t\t\tcalender += \"\";\n\t\t\t\t\ttbody = ( !showWeek ? \"\" : \"\" );\n\t\t\t\t\tfor ( dow = 0; dow < 7; dow++ ) { // create date picker days\n\t\t\t\t\t\tdaySettings = ( beforeShowDay ?\n\t\t\t\t\t\t\tbeforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, \"\" ] );\n\t\t\t\t\t\totherMonth = ( printDate.getMonth() !== drawMonth );\n\t\t\t\t\t\tunselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||\n\t\t\t\t\t\t\t( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );\n\t\t\t\t\t\ttbody += \"\"; // display selectable date\n\t\t\t\t\t\tprintDate.setDate( printDate.getDate() + 1 );\n\t\t\t\t\t\tprintDate = this._daylightSavingAdjust( printDate );\n\t\t\t\t\t}\n\t\t\t\t\tcalender += tbody + \"\";\n\t\t\t\t}\n\t\t\t\tdrawMonth++;\n\t\t\t\tif ( drawMonth > 11 ) {\n\t\t\t\t\tdrawMonth = 0;\n\t\t\t\t\tdrawYear++;\n\t\t\t\t}\n\t\t\t\tcalender += \"
\" + this._get( inst, \"weekHeader\" ) + \"= 5 ? \" class='ui-datepicker-week-end'\" : \"\" ) + \">\" +\n\t\t\t\t\t\t\"\" + dayNamesMin[ day ] + \"
\" +\n\t\t\t\t\t\tthis._get( inst, \"calculateWeek\" )( printDate ) + \"\" + // actions\n\t\t\t\t\t\t\t( otherMonth && !showOtherMonths ? \" \" : // display for other months\n\t\t\t\t\t\t\t( unselectable ? \"\" + printDate.getDate() + \"\" : \"\" + printDate.getDate() + \"\" ) ) + \"
\" + ( isMultiMonth ? \"
\" +\n\t\t\t\t\t\t\t( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? \"
\" : \"\" ) : \"\" );\n\t\t\t\tgroup += calender;\n\t\t\t}\n\t\t\thtml += group;\n\t\t}\n\t\thtml += buttonPanel;\n\t\tinst._keyEvent = false;\n\t\treturn html;\n\t},\n\n\t/* Generate the month and year header. */\n\t_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\tsecondary, monthNames, monthNamesShort ) {\n\n\t\tvar inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,\n\t\t\tchangeMonth = this._get( inst, \"changeMonth\" ),\n\t\t\tchangeYear = this._get( inst, \"changeYear\" ),\n\t\t\tshowMonthAfterYear = this._get( inst, \"showMonthAfterYear\" ),\n\t\t\thtml = \"
\",\n\t\t\tmonthHtml = \"\";\n\n\t\t// Month selection\n\t\tif ( secondary || !changeMonth ) {\n\t\t\tmonthHtml += \"\" + monthNames[ drawMonth ] + \"\";\n\t\t} else {\n\t\t\tinMinYear = ( minDate && minDate.getFullYear() === drawYear );\n\t\t\tinMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );\n\t\t\tmonthHtml += \"\";\n\t\t}\n\n\t\tif ( !showMonthAfterYear ) {\n\t\t\thtml += monthHtml + ( secondary || !( changeMonth && changeYear ) ? \" \" : \"\" );\n\t\t}\n\n\t\t// Year selection\n\t\tif ( !inst.yearshtml ) {\n\t\t\tinst.yearshtml = \"\";\n\t\t\tif ( secondary || !changeYear ) {\n\t\t\t\thtml += \"\" + drawYear + \"\";\n\t\t\t} else {\n\n\t\t\t\t// determine range of years to display\n\t\t\t\tyears = this._get( inst, \"yearRange\" ).split( \":\" );\n\t\t\t\tthisYear = new Date().getFullYear();\n\t\t\t\tdetermineYear = function( value ) {\n\t\t\t\t\tvar year = ( value.match( /c[+\\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :\n\t\t\t\t\t\t( value.match( /[+\\-].*/ ) ? thisYear + parseInt( value, 10 ) :\n\t\t\t\t\t\tparseInt( value, 10 ) ) );\n\t\t\t\t\treturn ( isNaN( year ) ? thisYear : year );\n\t\t\t\t};\n\t\t\t\tyear = determineYear( years[ 0 ] );\n\t\t\t\tendYear = Math.max( year, determineYear( years[ 1 ] || \"\" ) );\n\t\t\t\tyear = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );\n\t\t\t\tendYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );\n\t\t\t\tinst.yearshtml += \"\";\n\n\t\t\t\thtml += inst.yearshtml;\n\t\t\t\tinst.yearshtml = null;\n\t\t\t}\n\t\t}\n\n\t\thtml += this._get( inst, \"yearSuffix\" );\n\t\tif ( showMonthAfterYear ) {\n\t\t\thtml += ( secondary || !( changeMonth && changeYear ) ? \" \" : \"\" ) + monthHtml;\n\t\t}\n\t\thtml += \"
\"; // Close datepicker_header\n\t\treturn html;\n\t},\n\n\t/* Adjust one of the date sub-fields. */\n\t_adjustInstDate: function( inst, offset, period ) {\n\t\tvar year = inst.selectedYear + ( period === \"Y\" ? offset : 0 ),\n\t\t\tmonth = inst.selectedMonth + ( period === \"M\" ? offset : 0 ),\n\t\t\tday = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === \"D\" ? offset : 0 ),\n\t\t\tdate = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );\n\n\t\tinst.selectedDay = date.getDate();\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\n\t\tif ( period === \"M\" || period === \"Y\" ) {\n\t\t\tthis._notifyChange( inst );\n\t\t}\n\t},\n\n\t/* Ensure a date is within any min/max bounds. */\n\t_restrictMinMax: function( inst, date ) {\n\t\tvar minDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tnewDate = ( minDate && date < minDate ? minDate : date );\n\t\treturn ( maxDate && newDate > maxDate ? maxDate : newDate );\n\t},\n\n\t/* Notify change of month/year. */\n\t_notifyChange: function( inst ) {\n\t\tvar onChange = this._get( inst, \"onChangeMonthYear\" );\n\t\tif ( onChange ) {\n\t\t\tonChange.apply( ( inst.input ? inst.input[ 0 ] : null ),\n\t\t\t\t[ inst.selectedYear, inst.selectedMonth + 1, inst ] );\n\t\t}\n\t},\n\n\t/* Determine the number of months to show. */\n\t_getNumberOfMonths: function( inst ) {\n\t\tvar numMonths = this._get( inst, \"numberOfMonths\" );\n\t\treturn ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === \"number\" ? [ 1, numMonths ] : numMonths ) );\n\t},\n\n\t/* Determine the current maximum date - ensure no time components are set. */\n\t_getMinMaxDate: function( inst, minMax ) {\n\t\treturn this._determineDate( inst, this._get( inst, minMax + \"Date\" ), null );\n\t},\n\n\t/* Find the number of days in a given month. */\n\t_getDaysInMonth: function( year, month ) {\n\t\treturn 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();\n\t},\n\n\t/* Find the day of the week of the first of a month. */\n\t_getFirstDayOfMonth: function( year, month ) {\n\t\treturn new Date( year, month, 1 ).getDay();\n\t},\n\n\t/* Determines if we should allow a \"next/prev\" month display change. */\n\t_canAdjustMonth: function( inst, offset, curYear, curMonth ) {\n\t\tvar numMonths = this._getNumberOfMonths( inst ),\n\t\t\tdate = this._daylightSavingAdjust( new Date( curYear,\n\t\t\tcurMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );\n\n\t\tif ( offset < 0 ) {\n\t\t\tdate.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );\n\t\t}\n\t\treturn this._isInRange( inst, date );\n\t},\n\n\t/* Is the given date in the accepted range? */\n\t_isInRange: function( inst, date ) {\n\t\tvar yearSplit, currentYear,\n\t\t\tminDate = this._getMinMaxDate( inst, \"min\" ),\n\t\t\tmaxDate = this._getMinMaxDate( inst, \"max\" ),\n\t\t\tminYear = null,\n\t\t\tmaxYear = null,\n\t\t\tyears = this._get( inst, \"yearRange\" );\n\t\t\tif ( years ) {\n\t\t\t\tyearSplit = years.split( \":\" );\n\t\t\t\tcurrentYear = new Date().getFullYear();\n\t\t\t\tminYear = parseInt( yearSplit[ 0 ], 10 );\n\t\t\t\tmaxYear = parseInt( yearSplit[ 1 ], 10 );\n\t\t\t\tif ( yearSplit[ 0 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tminYear += currentYear;\n\t\t\t\t}\n\t\t\t\tif ( yearSplit[ 1 ].match( /[+\\-].*/ ) ) {\n\t\t\t\t\tmaxYear += currentYear;\n\t\t\t\t}\n\t\t\t}\n\n\t\treturn ( ( !minDate || date.getTime() >= minDate.getTime() ) &&\n\t\t\t( !maxDate || date.getTime() <= maxDate.getTime() ) &&\n\t\t\t( !minYear || date.getFullYear() >= minYear ) &&\n\t\t\t( !maxYear || date.getFullYear() <= maxYear ) );\n\t},\n\n\t/* Provide the configuration settings for formatting/parsing. */\n\t_getFormatConfig: function( inst ) {\n\t\tvar shortYearCutoff = this._get( inst, \"shortYearCutoff\" );\n\t\tshortYearCutoff = ( typeof shortYearCutoff !== \"string\" ? shortYearCutoff :\n\t\t\tnew Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );\n\t\treturn { shortYearCutoff: shortYearCutoff,\n\t\t\tdayNamesShort: this._get( inst, \"dayNamesShort\" ), dayNames: this._get( inst, \"dayNames\" ),\n\t\t\tmonthNamesShort: this._get( inst, \"monthNamesShort\" ), monthNames: this._get( inst, \"monthNames\" ) };\n\t},\n\n\t/* Format the given date for display. */\n\t_formatDate: function( inst, day, month, year ) {\n\t\tif ( !day ) {\n\t\t\tinst.currentDay = inst.selectedDay;\n\t\t\tinst.currentMonth = inst.selectedMonth;\n\t\t\tinst.currentYear = inst.selectedYear;\n\t\t}\n\t\tvar date = ( day ? ( typeof day === \"object\" ? day :\n\t\t\tthis._daylightSavingAdjust( new Date( year, month, day ) ) ) :\n\t\t\tthis._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );\n\t\treturn this.formatDate( this._get( inst, \"dateFormat\" ), date, this._getFormatConfig( inst ) );\n\t}\n} );\n\n/*\n * Bind hover events for datepicker elements.\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\n * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\n */\nfunction datepicker_bindHover( dpDiv ) {\n\tvar selector = \"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";\n\treturn dpDiv.on( \"mouseout\", selector, function() {\n\t\t\t$( this ).removeClass( \"ui-state-hover\" );\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-prev-hover\" );\n\t\t\t}\n\t\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t\t$( this ).removeClass( \"ui-datepicker-next-hover\" );\n\t\t\t}\n\t\t} )\n\t\t.on( \"mouseover\", selector, datepicker_handleMouseover );\n}\n\nfunction datepicker_handleMouseover() {\n\tif ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {\n\t\t$( this ).parents( \".ui-datepicker-calendar\" ).find( \"a\" ).removeClass( \"ui-state-hover\" );\n\t\t$( this ).addClass( \"ui-state-hover\" );\n\t\tif ( this.className.indexOf( \"ui-datepicker-prev\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-prev-hover\" );\n\t\t}\n\t\tif ( this.className.indexOf( \"ui-datepicker-next\" ) !== -1 ) {\n\t\t\t$( this ).addClass( \"ui-datepicker-next-hover\" );\n\t\t}\n\t}\n}\n\n/* jQuery extend now ignores nulls! */\nfunction datepicker_extendRemove( target, props ) {\n\t$.extend( target, props );\n\tfor ( var name in props ) {\n\t\tif ( props[ name ] == null ) {\n\t\t\ttarget[ name ] = props[ name ];\n\t\t}\n\t}\n\treturn target;\n}\n\n/* Invoke the datepicker functionality.\n @param options string - a command, optionally followed by additional parameters or\n\t\t\t\t\tObject - settings for attaching new datepicker functionality\n @return jQuery object */\n$.fn.datepicker = function( options ) {\n\n\t/* Verify an empty collection wasn't passed - Fixes #6976 */\n\tif ( !this.length ) {\n\t\treturn this;\n\t}\n\n\t/* Initialise the date picker. */\n\tif ( !$.datepicker.initialized ) {\n\t\t$( document ).on( \"mousedown\", $.datepicker._checkExternalClick );\n\t\t$.datepicker.initialized = true;\n\t}\n\n\t/* Append datepicker main container to body if not exist. */\n\tif ( $( \"#\" + $.datepicker._mainDivId ).length === 0 ) {\n\t\t$( \"body\" ).append( $.datepicker.dpDiv );\n\t}\n\n\tvar otherArgs = Array.prototype.slice.call( arguments, 1 );\n\tif ( typeof options === \"string\" && ( options === \"isDisabled\" || options === \"getDate\" || options === \"widget\" ) ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\tif ( options === \"option\" && arguments.length === 2 && typeof arguments[ 1 ] === \"string\" ) {\n\t\treturn $.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\tapply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );\n\t}\n\treturn this.each( function() {\n\t\ttypeof options === \"string\" ?\n\t\t\t$.datepicker[ \"_\" + options + \"Datepicker\" ].\n\t\t\t\tapply( $.datepicker, [ this ].concat( otherArgs ) ) :\n\t\t\t$.datepicker._attachDatepicker( this, options );\n\t} );\n};\n\n$.datepicker = new Datepicker(); // singleton instance\n$.datepicker.initialized = false;\n$.datepicker.uuid = new Date().getTime();\n$.datepicker.version = \"1.12.1\";\n\nreturn $.datepicker;\n\n} ) );\n","/* This program is free software. It comes without any warranty, to\n * the extent permitted by applicable law. You can redistribute it\n * and/or modify it under the terms of the Do What The Fuck You Want\n * To Public License, Version 2, as published by Sam Hocevar. See\n * http://www.wtfpl.net/ for more details. */\n'use strict';\nmodule.exports = leftPad;\n\nvar cache = [\n '',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' '\n];\n\nfunction leftPad (str, len, ch) {\n // convert `str` to a `string`\n str = str + '';\n // `len` is the `pad`'s length now\n len = len - str.length;\n // doesn't need to pad\n if (len <= 0) return str;\n // `ch` defaults to `' '`\n if (!ch && ch !== 0) ch = ' ';\n // convert `ch` to a `string` cuz it could be a number\n ch = ch + '';\n // cache common use cases\n if (ch === ' ' && len < 10) return cache[len] + str;\n // `pad` starts with an empty string\n var pad = '';\n // loop\n while (true) {\n // add `ch` to `pad` if `len` is odd\n if (len & 1) pad += ch;\n // divide `len` by 2, ditch the remainder\n len >>= 1;\n // \"double\" the `ch` so this operation count grows logarithmically on `len`\n // each time `ch` is \"doubled\", the `len` would need to be \"doubled\" too\n // similar to finding a value in binary search tree, hence O(log(n))\n if (len) ch += ch;\n // `len` is 0, exit the loop\n else break;\n }\n // pad `str`!\n return pad + str;\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.noUiSlider = {}));\n}(this, (function (exports) { 'use strict';\n\n exports.PipsMode = void 0;\n (function (PipsMode) {\n PipsMode[\"Range\"] = \"range\";\n PipsMode[\"Steps\"] = \"steps\";\n PipsMode[\"Positions\"] = \"positions\";\n PipsMode[\"Count\"] = \"count\";\n PipsMode[\"Values\"] = \"values\";\n })(exports.PipsMode || (exports.PipsMode = {}));\n exports.PipsType = void 0;\n (function (PipsType) {\n PipsType[PipsType[\"None\"] = -1] = \"None\";\n PipsType[PipsType[\"NoValue\"] = 0] = \"NoValue\";\n PipsType[PipsType[\"LargeValue\"] = 1] = \"LargeValue\";\n PipsType[PipsType[\"SmallValue\"] = 2] = \"SmallValue\";\n })(exports.PipsType || (exports.PipsType = {}));\n //region Helper Methods\n function isValidFormatter(entry) {\n return isValidPartialFormatter(entry) && typeof entry.from === \"function\";\n }\n function isValidPartialFormatter(entry) {\n // partial formatters only need a to function and not a from function\n return typeof entry === \"object\" && typeof entry.to === \"function\";\n }\n function removeElement(el) {\n el.parentElement.removeChild(el);\n }\n function isSet(value) {\n return value !== null && value !== undefined;\n }\n // Bindable version\n function preventDefault(e) {\n e.preventDefault();\n }\n // Removes duplicates from an array.\n function unique(array) {\n return array.filter(function (a) {\n return !this[a] ? (this[a] = true) : false;\n }, {});\n }\n // Round a value to the closest 'to'.\n function closest(value, to) {\n return Math.round(value / to) * to;\n }\n // Current position of an element relative to the document.\n function offset(elem, orientation) {\n var rect = elem.getBoundingClientRect();\n var doc = elem.ownerDocument;\n var docElem = doc.documentElement;\n var pageOffset = getPageOffset(doc);\n // getBoundingClientRect contains left scroll in Chrome on Android.\n // I haven't found a feature detection that proves this. Worst case\n // scenario on mis-match: the 'tap' feature on horizontal sliders breaks.\n if (/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)) {\n pageOffset.x = 0;\n }\n return orientation ? rect.top + pageOffset.y - docElem.clientTop : rect.left + pageOffset.x - docElem.clientLeft;\n }\n // Checks whether a value is numerical.\n function isNumeric(a) {\n return typeof a === \"number\" && !isNaN(a) && isFinite(a);\n }\n // Sets a class and removes it after [duration] ms.\n function addClassFor(element, className, duration) {\n if (duration > 0) {\n addClass(element, className);\n setTimeout(function () {\n removeClass(element, className);\n }, duration);\n }\n }\n // Limits a value to 0 - 100\n function limit(a) {\n return Math.max(Math.min(a, 100), 0);\n }\n // Wraps a variable as an array, if it isn't one yet.\n // Note that an input array is returned by reference!\n function asArray(a) {\n return Array.isArray(a) ? a : [a];\n }\n // Counts decimals\n function countDecimals(numStr) {\n numStr = String(numStr);\n var pieces = numStr.split(\".\");\n return pieces.length > 1 ? pieces[1].length : 0;\n }\n // http://youmightnotneedjquery.com/#add_class\n function addClass(el, className) {\n if (el.classList && !/\\s/.test(className)) {\n el.classList.add(className);\n }\n else {\n el.className += \" \" + className;\n }\n }\n // http://youmightnotneedjquery.com/#remove_class\n function removeClass(el, className) {\n if (el.classList && !/\\s/.test(className)) {\n el.classList.remove(className);\n }\n else {\n el.className = el.className.replace(new RegExp(\"(^|\\\\b)\" + className.split(\" \").join(\"|\") + \"(\\\\b|$)\", \"gi\"), \" \");\n }\n }\n // https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/\n function hasClass(el, className) {\n return el.classList ? el.classList.contains(className) : new RegExp(\"\\\\b\" + className + \"\\\\b\").test(el.className);\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes\n function getPageOffset(doc) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (doc.compatMode || \"\") === \"CSS1Compat\";\n var x = supportPageOffset\n ? window.pageXOffset\n : isCSS1Compat\n ? doc.documentElement.scrollLeft\n : doc.body.scrollLeft;\n var y = supportPageOffset\n ? window.pageYOffset\n : isCSS1Compat\n ? doc.documentElement.scrollTop\n : doc.body.scrollTop;\n return {\n x: x,\n y: y\n };\n }\n // we provide a function to compute constants instead\n // of accessing window.* as soon as the module needs it\n // so that we do not compute anything if not needed\n function getActions() {\n // Determine the events to bind. IE11 implements pointerEvents without\n // a prefix, which breaks compatibility with the IE10 implementation.\n return window.navigator.pointerEnabled\n ? {\n start: \"pointerdown\",\n move: \"pointermove\",\n end: \"pointerup\"\n }\n : window.navigator.msPointerEnabled\n ? {\n start: \"MSPointerDown\",\n move: \"MSPointerMove\",\n end: \"MSPointerUp\"\n }\n : {\n start: \"mousedown touchstart\",\n move: \"mousemove touchmove\",\n end: \"mouseup touchend\"\n };\n }\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n // Issue #785\n function getSupportsPassive() {\n var supportsPassive = false;\n /* eslint-disable */\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function () {\n supportsPassive = true;\n }\n });\n // @ts-ignore\n window.addEventListener(\"test\", null, opts);\n }\n catch (e) { }\n /* eslint-enable */\n return supportsPassive;\n }\n function getSupportsTouchActionNone() {\n return window.CSS && CSS.supports && CSS.supports(\"touch-action\", \"none\");\n }\n //endregion\n //region Range Calculation\n // Determine the size of a sub-range in relation to a full range.\n function subRangeRatio(pa, pb) {\n return 100 / (pb - pa);\n }\n // (percentage) How many percent is this value of this range?\n function fromPercentage(range, value, startRange) {\n return (value * 100) / (range[startRange + 1] - range[startRange]);\n }\n // (percentage) Where is this value on this range?\n function toPercentage(range, value) {\n return fromPercentage(range, range[0] < 0 ? value + Math.abs(range[0]) : value - range[0], 0);\n }\n // (value) How much is this percentage on this range?\n function isPercentage(range, value) {\n return (value * (range[1] - range[0])) / 100 + range[0];\n }\n function getJ(value, arr) {\n var j = 1;\n while (value >= arr[j]) {\n j += 1;\n }\n return j;\n }\n // (percentage) Input a value, find where, on a scale of 0-100, it applies.\n function toStepping(xVal, xPct, value) {\n if (value >= xVal.slice(-1)[0]) {\n return 100;\n }\n var j = getJ(value, xVal);\n var va = xVal[j - 1];\n var vb = xVal[j];\n var pa = xPct[j - 1];\n var pb = xPct[j];\n return pa + toPercentage([va, vb], value) / subRangeRatio(pa, pb);\n }\n // (value) Input a percentage, find where it is on the specified range.\n function fromStepping(xVal, xPct, value) {\n // There is no range group that fits 100\n if (value >= 100) {\n return xVal.slice(-1)[0];\n }\n var j = getJ(value, xPct);\n var va = xVal[j - 1];\n var vb = xVal[j];\n var pa = xPct[j - 1];\n var pb = xPct[j];\n return isPercentage([va, vb], (value - pa) * subRangeRatio(pa, pb));\n }\n // (percentage) Get the step that applies at a certain value.\n function getStep(xPct, xSteps, snap, value) {\n if (value === 100) {\n return value;\n }\n var j = getJ(value, xPct);\n var a = xPct[j - 1];\n var b = xPct[j];\n // If 'snap' is set, steps are used as fixed points on the slider.\n if (snap) {\n // Find the closest position, a or b.\n if (value - a > (b - a) / 2) {\n return b;\n }\n return a;\n }\n if (!xSteps[j - 1]) {\n return value;\n }\n return xPct[j - 1] + closest(value - xPct[j - 1], xSteps[j - 1]);\n }\n //endregion\n //region Spectrum\n var Spectrum = /** @class */ (function () {\n function Spectrum(entry, snap, singleStep) {\n this.xPct = [];\n this.xVal = [];\n this.xSteps = [];\n this.xNumSteps = [];\n this.xHighestCompleteStep = [];\n this.xSteps = [singleStep || false];\n this.xNumSteps = [false];\n this.snap = snap;\n var index;\n var ordered = [];\n // Map the object keys to an array.\n Object.keys(entry).forEach(function (index) {\n ordered.push([asArray(entry[index]), index]);\n });\n // Sort all entries by value (numeric sort).\n ordered.sort(function (a, b) {\n return a[0][0] - b[0][0];\n });\n // Convert all entries to subranges.\n for (index = 0; index < ordered.length; index++) {\n this.handleEntryPoint(ordered[index][1], ordered[index][0]);\n }\n // Store the actual step values.\n // xSteps is sorted in the same order as xPct and xVal.\n this.xNumSteps = this.xSteps.slice(0);\n // Convert all numeric steps to the percentage of the subrange they represent.\n for (index = 0; index < this.xNumSteps.length; index++) {\n this.handleStepPoint(index, this.xNumSteps[index]);\n }\n }\n Spectrum.prototype.getDistance = function (value) {\n var index;\n var distances = [];\n for (index = 0; index < this.xNumSteps.length - 1; index++) {\n // last \"range\" can't contain step size as it is purely an endpoint.\n var step = this.xNumSteps[index];\n if (step && (value / step) % 1 !== 0) {\n throw new Error(\"noUiSlider: 'limit', 'margin' and 'padding' of \" +\n this.xPct[index] +\n \"% range must be divisible by step.\");\n }\n // Calculate percentual distance in current range of limit, margin or padding\n distances[index] = fromPercentage(this.xVal, value, index);\n }\n return distances;\n };\n // Calculate the percentual distance over the whole scale of ranges.\n // direction: 0 = backwards / 1 = forwards\n Spectrum.prototype.getAbsoluteDistance = function (value, distances, direction) {\n var xPct_index = 0;\n // Calculate range where to start calculation\n if (value < this.xPct[this.xPct.length - 1]) {\n while (value > this.xPct[xPct_index + 1]) {\n xPct_index++;\n }\n }\n else if (value === this.xPct[this.xPct.length - 1]) {\n xPct_index = this.xPct.length - 2;\n }\n // If looking backwards and the value is exactly at a range separator then look one range further\n if (!direction && value === this.xPct[xPct_index + 1]) {\n xPct_index++;\n }\n if (distances === null) {\n distances = [];\n }\n var start_factor;\n var rest_factor = 1;\n var rest_rel_distance = distances[xPct_index];\n var range_pct = 0;\n var rel_range_distance = 0;\n var abs_distance_counter = 0;\n var range_counter = 0;\n // Calculate what part of the start range the value is\n if (direction) {\n start_factor = (value - this.xPct[xPct_index]) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]);\n }\n else {\n start_factor = (this.xPct[xPct_index + 1] - value) / (this.xPct[xPct_index + 1] - this.xPct[xPct_index]);\n }\n // Do until the complete distance across ranges is calculated\n while (rest_rel_distance > 0) {\n // Calculate the percentage of total range\n range_pct = this.xPct[xPct_index + 1 + range_counter] - this.xPct[xPct_index + range_counter];\n // Detect if the margin, padding or limit is larger then the current range and calculate\n if (distances[xPct_index + range_counter] * rest_factor + 100 - start_factor * 100 > 100) {\n // If larger then take the percentual distance of the whole range\n rel_range_distance = range_pct * start_factor;\n // Rest factor of relative percentual distance still to be calculated\n rest_factor = (rest_rel_distance - 100 * start_factor) / distances[xPct_index + range_counter];\n // Set start factor to 1 as for next range it does not apply.\n start_factor = 1;\n }\n else {\n // If smaller or equal then take the percentual distance of the calculate percentual part of that range\n rel_range_distance = ((distances[xPct_index + range_counter] * range_pct) / 100) * rest_factor;\n // No rest left as the rest fits in current range\n rest_factor = 0;\n }\n if (direction) {\n abs_distance_counter = abs_distance_counter - rel_range_distance;\n // Limit range to first range when distance becomes outside of minimum range\n if (this.xPct.length + range_counter >= 1) {\n range_counter--;\n }\n }\n else {\n abs_distance_counter = abs_distance_counter + rel_range_distance;\n // Limit range to last range when distance becomes outside of maximum range\n if (this.xPct.length - range_counter >= 1) {\n range_counter++;\n }\n }\n // Rest of relative percentual distance still to be calculated\n rest_rel_distance = distances[xPct_index + range_counter] * rest_factor;\n }\n return value + abs_distance_counter;\n };\n Spectrum.prototype.toStepping = function (value) {\n value = toStepping(this.xVal, this.xPct, value);\n return value;\n };\n Spectrum.prototype.fromStepping = function (value) {\n return fromStepping(this.xVal, this.xPct, value);\n };\n Spectrum.prototype.getStep = function (value) {\n value = getStep(this.xPct, this.xSteps, this.snap, value);\n return value;\n };\n Spectrum.prototype.getDefaultStep = function (value, isDown, size) {\n var j = getJ(value, this.xPct);\n // When at the top or stepping down, look at the previous sub-range\n if (value === 100 || (isDown && value === this.xPct[j - 1])) {\n j = Math.max(j - 1, 1);\n }\n return (this.xVal[j] - this.xVal[j - 1]) / size;\n };\n Spectrum.prototype.getNearbySteps = function (value) {\n var j = getJ(value, this.xPct);\n return {\n stepBefore: {\n startValue: this.xVal[j - 2],\n step: this.xNumSteps[j - 2],\n highestStep: this.xHighestCompleteStep[j - 2]\n },\n thisStep: {\n startValue: this.xVal[j - 1],\n step: this.xNumSteps[j - 1],\n highestStep: this.xHighestCompleteStep[j - 1]\n },\n stepAfter: {\n startValue: this.xVal[j],\n step: this.xNumSteps[j],\n highestStep: this.xHighestCompleteStep[j]\n }\n };\n };\n Spectrum.prototype.countStepDecimals = function () {\n var stepDecimals = this.xNumSteps.map(countDecimals);\n return Math.max.apply(null, stepDecimals);\n };\n Spectrum.prototype.hasNoSize = function () {\n return this.xVal[0] === this.xVal[this.xVal.length - 1];\n };\n // Outside testing\n Spectrum.prototype.convert = function (value) {\n return this.getStep(this.toStepping(value));\n };\n Spectrum.prototype.handleEntryPoint = function (index, value) {\n var percentage;\n // Covert min/max syntax to 0 and 100.\n if (index === \"min\") {\n percentage = 0;\n }\n else if (index === \"max\") {\n percentage = 100;\n }\n else {\n percentage = parseFloat(index);\n }\n // Check for correct input.\n if (!isNumeric(percentage) || !isNumeric(value[0])) {\n throw new Error(\"noUiSlider: 'range' value isn't numeric.\");\n }\n // Store values.\n this.xPct.push(percentage);\n this.xVal.push(value[0]);\n var value1 = Number(value[1]);\n // NaN will evaluate to false too, but to keep\n // logging clear, set step explicitly. Make sure\n // not to override the 'step' setting with false.\n if (!percentage) {\n if (!isNaN(value1)) {\n this.xSteps[0] = value1;\n }\n }\n else {\n this.xSteps.push(isNaN(value1) ? false : value1);\n }\n this.xHighestCompleteStep.push(0);\n };\n Spectrum.prototype.handleStepPoint = function (i, n) {\n // Ignore 'false' stepping.\n if (!n) {\n return;\n }\n // Step over zero-length ranges (#948);\n if (this.xVal[i] === this.xVal[i + 1]) {\n this.xSteps[i] = this.xHighestCompleteStep[i] = this.xVal[i];\n return;\n }\n // Factor to range ratio\n this.xSteps[i] =\n fromPercentage([this.xVal[i], this.xVal[i + 1]], n, 0) / subRangeRatio(this.xPct[i], this.xPct[i + 1]);\n var totalSteps = (this.xVal[i + 1] - this.xVal[i]) / this.xNumSteps[i];\n var highestStep = Math.ceil(Number(totalSteps.toFixed(3)) - 1);\n var step = this.xVal[i] + this.xNumSteps[i] * highestStep;\n this.xHighestCompleteStep[i] = step;\n };\n return Spectrum;\n }());\n //endregion\n //region Options\n /*\tEvery input option is tested and parsed. This will prevent\n endless validation in internal methods. These tests are\n structured with an item for every option available. An\n option can be marked as required by setting the 'r' flag.\n The testing function is provided with three arguments:\n - The provided value for the option;\n - A reference to the options object;\n - The name for the option;\n\n The testing function returns false when an error is detected,\n or true when everything is OK. It can also modify the option\n object, to make sure all values can be correctly looped elsewhere. */\n //region Defaults\n var defaultFormatter = {\n to: function (value) {\n return value === undefined ? \"\" : value.toFixed(2);\n },\n from: Number\n };\n var cssClasses = {\n target: \"target\",\n base: \"base\",\n origin: \"origin\",\n handle: \"handle\",\n handleLower: \"handle-lower\",\n handleUpper: \"handle-upper\",\n touchArea: \"touch-area\",\n horizontal: \"horizontal\",\n vertical: \"vertical\",\n background: \"background\",\n connect: \"connect\",\n connects: \"connects\",\n ltr: \"ltr\",\n rtl: \"rtl\",\n textDirectionLtr: \"txt-dir-ltr\",\n textDirectionRtl: \"txt-dir-rtl\",\n draggable: \"draggable\",\n drag: \"state-drag\",\n tap: \"state-tap\",\n active: \"active\",\n tooltip: \"tooltip\",\n pips: \"pips\",\n pipsHorizontal: \"pips-horizontal\",\n pipsVertical: \"pips-vertical\",\n marker: \"marker\",\n markerHorizontal: \"marker-horizontal\",\n markerVertical: \"marker-vertical\",\n markerNormal: \"marker-normal\",\n markerLarge: \"marker-large\",\n markerSub: \"marker-sub\",\n value: \"value\",\n valueHorizontal: \"value-horizontal\",\n valueVertical: \"value-vertical\",\n valueNormal: \"value-normal\",\n valueLarge: \"value-large\",\n valueSub: \"value-sub\"\n };\n // Namespaces of internal event listeners\n var INTERNAL_EVENT_NS = {\n tooltips: \".__tooltips\",\n aria: \".__aria\"\n };\n //endregion\n function testStep(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'step' is not numeric.\");\n }\n // The step option can still be used to set stepping\n // for linear sliders. Overwritten if set in 'range'.\n parsed.singleStep = entry;\n }\n function testKeyboardPageMultiplier(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardPageMultiplier' is not numeric.\");\n }\n parsed.keyboardPageMultiplier = entry;\n }\n function testKeyboardMultiplier(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardMultiplier' is not numeric.\");\n }\n parsed.keyboardMultiplier = entry;\n }\n function testKeyboardDefaultStep(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'keyboardDefaultStep' is not numeric.\");\n }\n parsed.keyboardDefaultStep = entry;\n }\n function testRange(parsed, entry) {\n // Filter incorrect input.\n if (typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new Error(\"noUiSlider: 'range' is not an object.\");\n }\n // Catch missing start or end.\n if (entry.min === undefined || entry.max === undefined) {\n throw new Error(\"noUiSlider: Missing 'min' or 'max' in 'range'.\");\n }\n parsed.spectrum = new Spectrum(entry, parsed.snap || false, parsed.singleStep);\n }\n function testStart(parsed, entry) {\n entry = asArray(entry);\n // Validate input. Values aren't tested, as the public .val method\n // will always provide a valid location.\n if (!Array.isArray(entry) || !entry.length) {\n throw new Error(\"noUiSlider: 'start' option is incorrect.\");\n }\n // Store the number of handles.\n parsed.handles = entry.length;\n // When the slider is initialized, the .val method will\n // be called with the start options.\n parsed.start = entry;\n }\n function testSnap(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'snap' option must be a boolean.\");\n }\n // Enforce 100% stepping within subranges.\n parsed.snap = entry;\n }\n function testAnimate(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'animate' option must be a boolean.\");\n }\n // Enforce 100% stepping within subranges.\n parsed.animate = entry;\n }\n function testAnimationDuration(parsed, entry) {\n if (typeof entry !== \"number\") {\n throw new Error(\"noUiSlider: 'animationDuration' option must be a number.\");\n }\n parsed.animationDuration = entry;\n }\n function testConnect(parsed, entry) {\n var connect = [false];\n var i;\n // Map legacy options\n if (entry === \"lower\") {\n entry = [true, false];\n }\n else if (entry === \"upper\") {\n entry = [false, true];\n }\n // Handle boolean options\n if (entry === true || entry === false) {\n for (i = 1; i < parsed.handles; i++) {\n connect.push(entry);\n }\n connect.push(false);\n }\n // Reject invalid input\n else if (!Array.isArray(entry) || !entry.length || entry.length !== parsed.handles + 1) {\n throw new Error(\"noUiSlider: 'connect' option doesn't match handle count.\");\n }\n else {\n connect = entry;\n }\n parsed.connect = connect;\n }\n function testOrientation(parsed, entry) {\n // Set orientation to an a numerical value for easy\n // array selection.\n switch (entry) {\n case \"horizontal\":\n parsed.ort = 0;\n break;\n case \"vertical\":\n parsed.ort = 1;\n break;\n default:\n throw new Error(\"noUiSlider: 'orientation' option is invalid.\");\n }\n }\n function testMargin(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'margin' option must be numeric.\");\n }\n // Issue #582\n if (entry === 0) {\n return;\n }\n parsed.margin = parsed.spectrum.getDistance(entry);\n }\n function testLimit(parsed, entry) {\n if (!isNumeric(entry)) {\n throw new Error(\"noUiSlider: 'limit' option must be numeric.\");\n }\n parsed.limit = parsed.spectrum.getDistance(entry);\n if (!parsed.limit || parsed.handles < 2) {\n throw new Error(\"noUiSlider: 'limit' option is only supported on linear sliders with 2 or more handles.\");\n }\n }\n function testPadding(parsed, entry) {\n var index;\n if (!isNumeric(entry) && !Array.isArray(entry)) {\n throw new Error(\"noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.\");\n }\n if (Array.isArray(entry) && !(entry.length === 2 || isNumeric(entry[0]) || isNumeric(entry[1]))) {\n throw new Error(\"noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.\");\n }\n if (entry === 0) {\n return;\n }\n if (!Array.isArray(entry)) {\n entry = [entry, entry];\n }\n // 'getDistance' returns false for invalid values.\n parsed.padding = [parsed.spectrum.getDistance(entry[0]), parsed.spectrum.getDistance(entry[1])];\n for (index = 0; index < parsed.spectrum.xNumSteps.length - 1; index++) {\n // last \"range\" can't contain step size as it is purely an endpoint.\n if (parsed.padding[0][index] < 0 || parsed.padding[1][index] < 0) {\n throw new Error(\"noUiSlider: 'padding' option must be a positive number(s).\");\n }\n }\n var totalPadding = entry[0] + entry[1];\n var firstValue = parsed.spectrum.xVal[0];\n var lastValue = parsed.spectrum.xVal[parsed.spectrum.xVal.length - 1];\n if (totalPadding / (lastValue - firstValue) > 1) {\n throw new Error(\"noUiSlider: 'padding' option must not exceed 100% of the range.\");\n }\n }\n function testDirection(parsed, entry) {\n // Set direction as a numerical value for easy parsing.\n // Invert connection for RTL sliders, so that the proper\n // handles get the connect/background classes.\n switch (entry) {\n case \"ltr\":\n parsed.dir = 0;\n break;\n case \"rtl\":\n parsed.dir = 1;\n break;\n default:\n throw new Error(\"noUiSlider: 'direction' option was not recognized.\");\n }\n }\n function testBehaviour(parsed, entry) {\n // Make sure the input is a string.\n if (typeof entry !== \"string\") {\n throw new Error(\"noUiSlider: 'behaviour' must be a string containing options.\");\n }\n // Check if the string contains any keywords.\n // None are required.\n var tap = entry.indexOf(\"tap\") >= 0;\n var drag = entry.indexOf(\"drag\") >= 0;\n var fixed = entry.indexOf(\"fixed\") >= 0;\n var snap = entry.indexOf(\"snap\") >= 0;\n var hover = entry.indexOf(\"hover\") >= 0;\n var unconstrained = entry.indexOf(\"unconstrained\") >= 0;\n var dragAll = entry.indexOf(\"drag-all\") >= 0;\n if (fixed) {\n if (parsed.handles !== 2) {\n throw new Error(\"noUiSlider: 'fixed' behaviour must be used with 2 handles\");\n }\n // Use margin to enforce fixed state\n testMargin(parsed, parsed.start[1] - parsed.start[0]);\n }\n if (unconstrained && (parsed.margin || parsed.limit)) {\n throw new Error(\"noUiSlider: 'unconstrained' behaviour cannot be used with margin or limit\");\n }\n parsed.events = {\n tap: tap || snap,\n drag: drag,\n dragAll: dragAll,\n fixed: fixed,\n snap: snap,\n hover: hover,\n unconstrained: unconstrained\n };\n }\n function testTooltips(parsed, entry) {\n if (entry === false) {\n return;\n }\n if (entry === true || isValidPartialFormatter(entry)) {\n parsed.tooltips = [];\n for (var i = 0; i < parsed.handles; i++) {\n parsed.tooltips.push(entry);\n }\n }\n else {\n entry = asArray(entry);\n if (entry.length !== parsed.handles) {\n throw new Error(\"noUiSlider: must pass a formatter for all handles.\");\n }\n entry.forEach(function (formatter) {\n if (typeof formatter !== \"boolean\" && !isValidPartialFormatter(formatter)) {\n throw new Error(\"noUiSlider: 'tooltips' must be passed a formatter or 'false'.\");\n }\n });\n parsed.tooltips = entry;\n }\n }\n function testHandleAttributes(parsed, entry) {\n if (entry.length !== parsed.handles) {\n throw new Error(\"noUiSlider: must pass a attributes for all handles.\");\n }\n parsed.handleAttributes = entry;\n }\n function testAriaFormat(parsed, entry) {\n if (!isValidPartialFormatter(entry)) {\n throw new Error(\"noUiSlider: 'ariaFormat' requires 'to' method.\");\n }\n parsed.ariaFormat = entry;\n }\n function testFormat(parsed, entry) {\n if (!isValidFormatter(entry)) {\n throw new Error(\"noUiSlider: 'format' requires 'to' and 'from' methods.\");\n }\n parsed.format = entry;\n }\n function testKeyboardSupport(parsed, entry) {\n if (typeof entry !== \"boolean\") {\n throw new Error(\"noUiSlider: 'keyboardSupport' option must be a boolean.\");\n }\n parsed.keyboardSupport = entry;\n }\n function testDocumentElement(parsed, entry) {\n // This is an advanced option. Passed values are used without validation.\n parsed.documentElement = entry;\n }\n function testCssPrefix(parsed, entry) {\n if (typeof entry !== \"string\" && entry !== false) {\n throw new Error(\"noUiSlider: 'cssPrefix' must be a string or `false`.\");\n }\n parsed.cssPrefix = entry;\n }\n function testCssClasses(parsed, entry) {\n if (typeof entry !== \"object\") {\n throw new Error(\"noUiSlider: 'cssClasses' must be an object.\");\n }\n if (typeof parsed.cssPrefix === \"string\") {\n parsed.cssClasses = {};\n Object.keys(entry).forEach(function (key) {\n parsed.cssClasses[key] = parsed.cssPrefix + entry[key];\n });\n }\n else {\n parsed.cssClasses = entry;\n }\n }\n // Test all developer settings and parse to assumption-safe values.\n function testOptions(options) {\n // To prove a fix for #537, freeze options here.\n // If the object is modified, an error will be thrown.\n // Object.freeze(options);\n var parsed = {\n margin: null,\n limit: null,\n padding: null,\n animate: true,\n animationDuration: 300,\n ariaFormat: defaultFormatter,\n format: defaultFormatter\n };\n // Tests are executed in the order they are presented here.\n var tests = {\n step: { r: false, t: testStep },\n keyboardPageMultiplier: { r: false, t: testKeyboardPageMultiplier },\n keyboardMultiplier: { r: false, t: testKeyboardMultiplier },\n keyboardDefaultStep: { r: false, t: testKeyboardDefaultStep },\n start: { r: true, t: testStart },\n connect: { r: true, t: testConnect },\n direction: { r: true, t: testDirection },\n snap: { r: false, t: testSnap },\n animate: { r: false, t: testAnimate },\n animationDuration: { r: false, t: testAnimationDuration },\n range: { r: true, t: testRange },\n orientation: { r: false, t: testOrientation },\n margin: { r: false, t: testMargin },\n limit: { r: false, t: testLimit },\n padding: { r: false, t: testPadding },\n behaviour: { r: true, t: testBehaviour },\n ariaFormat: { r: false, t: testAriaFormat },\n format: { r: false, t: testFormat },\n tooltips: { r: false, t: testTooltips },\n keyboardSupport: { r: true, t: testKeyboardSupport },\n documentElement: { r: false, t: testDocumentElement },\n cssPrefix: { r: true, t: testCssPrefix },\n cssClasses: { r: true, t: testCssClasses },\n handleAttributes: { r: false, t: testHandleAttributes }\n };\n var defaults = {\n connect: false,\n direction: \"ltr\",\n behaviour: \"tap\",\n orientation: \"horizontal\",\n keyboardSupport: true,\n cssPrefix: \"noUi-\",\n cssClasses: cssClasses,\n keyboardPageMultiplier: 5,\n keyboardMultiplier: 1,\n keyboardDefaultStep: 10\n };\n // AriaFormat defaults to regular format, if any.\n if (options.format && !options.ariaFormat) {\n options.ariaFormat = options.format;\n }\n // Run all options through a testing mechanism to ensure correct\n // input. It should be noted that options might get modified to\n // be handled properly. E.g. wrapping integers in arrays.\n Object.keys(tests).forEach(function (name) {\n // If the option isn't set, but it is required, throw an error.\n if (!isSet(options[name]) && defaults[name] === undefined) {\n if (tests[name].r) {\n throw new Error(\"noUiSlider: '\" + name + \"' is required.\");\n }\n return;\n }\n tests[name].t(parsed, !isSet(options[name]) ? defaults[name] : options[name]);\n });\n // Forward pips options\n parsed.pips = options.pips;\n // All recent browsers accept unprefixed transform.\n // We need -ms- for IE9 and -webkit- for older Android;\n // Assume use of -webkit- if unprefixed and -ms- are not supported.\n // https://caniuse.com/#feat=transforms2d\n var d = document.createElement(\"div\");\n var msPrefix = d.style.msTransform !== undefined;\n var noPrefix = d.style.transform !== undefined;\n parsed.transformRule = noPrefix ? \"transform\" : msPrefix ? \"msTransform\" : \"webkitTransform\";\n // Pips don't move, so we can place them using left/top.\n var styles = [\n [\"left\", \"top\"],\n [\"right\", \"bottom\"]\n ];\n parsed.style = styles[parsed.dir][parsed.ort];\n return parsed;\n }\n //endregion\n function scope(target, options, originalOptions) {\n var actions = getActions();\n var supportsTouchActionNone = getSupportsTouchActionNone();\n var supportsPassive = supportsTouchActionNone && getSupportsPassive();\n // All variables local to 'scope' are prefixed with 'scope_'\n // Slider DOM Nodes\n var scope_Target = target;\n var scope_Base;\n var scope_Handles;\n var scope_Connects;\n var scope_Pips;\n var scope_Tooltips;\n // Slider state values\n var scope_Spectrum = options.spectrum;\n var scope_Values = [];\n var scope_Locations = [];\n var scope_HandleNumbers = [];\n var scope_ActiveHandlesCount = 0;\n var scope_Events = {};\n // Document Nodes\n var scope_Document = target.ownerDocument;\n var scope_DocumentElement = options.documentElement || scope_Document.documentElement;\n var scope_Body = scope_Document.body;\n // For horizontal sliders in standard ltr documents,\n // make .noUi-origin overflow to the left so the document doesn't scroll.\n var scope_DirOffset = scope_Document.dir === \"rtl\" || options.ort === 1 ? 0 : 100;\n // Creates a node, adds it to target, returns the new node.\n function addNodeTo(addTarget, className) {\n var div = scope_Document.createElement(\"div\");\n if (className) {\n addClass(div, className);\n }\n addTarget.appendChild(div);\n return div;\n }\n // Append a origin to the base\n function addOrigin(base, handleNumber) {\n var origin = addNodeTo(base, options.cssClasses.origin);\n var handle = addNodeTo(origin, options.cssClasses.handle);\n addNodeTo(handle, options.cssClasses.touchArea);\n handle.setAttribute(\"data-handle\", String(handleNumber));\n if (options.keyboardSupport) {\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n // 0 = focusable and reachable\n handle.setAttribute(\"tabindex\", \"0\");\n handle.addEventListener(\"keydown\", function (event) {\n return eventKeydown(event, handleNumber);\n });\n }\n if (options.handleAttributes !== undefined) {\n var attributes_1 = options.handleAttributes[handleNumber];\n Object.keys(attributes_1).forEach(function (attribute) {\n handle.setAttribute(attribute, attributes_1[attribute]);\n });\n }\n handle.setAttribute(\"role\", \"slider\");\n handle.setAttribute(\"aria-orientation\", options.ort ? \"vertical\" : \"horizontal\");\n if (handleNumber === 0) {\n addClass(handle, options.cssClasses.handleLower);\n }\n else if (handleNumber === options.handles - 1) {\n addClass(handle, options.cssClasses.handleUpper);\n }\n return origin;\n }\n // Insert nodes for connect elements\n function addConnect(base, add) {\n if (!add) {\n return false;\n }\n return addNodeTo(base, options.cssClasses.connect);\n }\n // Add handles to the slider base.\n function addElements(connectOptions, base) {\n var connectBase = addNodeTo(base, options.cssClasses.connects);\n scope_Handles = [];\n scope_Connects = [];\n scope_Connects.push(addConnect(connectBase, connectOptions[0]));\n // [::::O====O====O====]\n // connectOptions = [0, 1, 1, 1]\n for (var i = 0; i < options.handles; i++) {\n // Keep a list of all added handles.\n scope_Handles.push(addOrigin(base, i));\n scope_HandleNumbers[i] = i;\n scope_Connects.push(addConnect(connectBase, connectOptions[i + 1]));\n }\n }\n // Initialize a single slider.\n function addSlider(addTarget) {\n // Apply classes and data to the target.\n addClass(addTarget, options.cssClasses.target);\n if (options.dir === 0) {\n addClass(addTarget, options.cssClasses.ltr);\n }\n else {\n addClass(addTarget, options.cssClasses.rtl);\n }\n if (options.ort === 0) {\n addClass(addTarget, options.cssClasses.horizontal);\n }\n else {\n addClass(addTarget, options.cssClasses.vertical);\n }\n var textDirection = getComputedStyle(addTarget).direction;\n if (textDirection === \"rtl\") {\n addClass(addTarget, options.cssClasses.textDirectionRtl);\n }\n else {\n addClass(addTarget, options.cssClasses.textDirectionLtr);\n }\n return addNodeTo(addTarget, options.cssClasses.base);\n }\n function addTooltip(handle, handleNumber) {\n if (!options.tooltips || !options.tooltips[handleNumber]) {\n return false;\n }\n return addNodeTo(handle.firstChild, options.cssClasses.tooltip);\n }\n function isSliderDisabled() {\n return scope_Target.hasAttribute(\"disabled\");\n }\n // Disable the slider dragging if any handle is disabled\n function isHandleDisabled(handleNumber) {\n var handleOrigin = scope_Handles[handleNumber];\n return handleOrigin.hasAttribute(\"disabled\");\n }\n function removeTooltips() {\n if (scope_Tooltips) {\n removeEvent(\"update\" + INTERNAL_EVENT_NS.tooltips);\n scope_Tooltips.forEach(function (tooltip) {\n if (tooltip) {\n removeElement(tooltip);\n }\n });\n scope_Tooltips = null;\n }\n }\n // The tooltips option is a shorthand for using the 'update' event.\n function tooltips() {\n removeTooltips();\n // Tooltips are added with options.tooltips in original order.\n scope_Tooltips = scope_Handles.map(addTooltip);\n bindEvent(\"update\" + INTERNAL_EVENT_NS.tooltips, function (values, handleNumber, unencoded) {\n if (!scope_Tooltips || !options.tooltips) {\n return;\n }\n if (scope_Tooltips[handleNumber] === false) {\n return;\n }\n var formattedValue = values[handleNumber];\n if (options.tooltips[handleNumber] !== true) {\n formattedValue = options.tooltips[handleNumber].to(unencoded[handleNumber]);\n }\n scope_Tooltips[handleNumber].innerHTML = formattedValue;\n });\n }\n function aria() {\n removeEvent(\"update\" + INTERNAL_EVENT_NS.aria);\n bindEvent(\"update\" + INTERNAL_EVENT_NS.aria, function (values, handleNumber, unencoded, tap, positions) {\n // Update Aria Values for all handles, as a change in one changes min and max values for the next.\n scope_HandleNumbers.forEach(function (index) {\n var handle = scope_Handles[index];\n var min = checkHandlePosition(scope_Locations, index, 0, true, true, true);\n var max = checkHandlePosition(scope_Locations, index, 100, true, true, true);\n var now = positions[index];\n // Formatted value for display\n var text = String(options.ariaFormat.to(unencoded[index]));\n // Map to slider range values\n min = scope_Spectrum.fromStepping(min).toFixed(1);\n max = scope_Spectrum.fromStepping(max).toFixed(1);\n now = scope_Spectrum.fromStepping(now).toFixed(1);\n handle.children[0].setAttribute(\"aria-valuemin\", min);\n handle.children[0].setAttribute(\"aria-valuemax\", max);\n handle.children[0].setAttribute(\"aria-valuenow\", now);\n handle.children[0].setAttribute(\"aria-valuetext\", text);\n });\n });\n }\n function getGroup(pips) {\n // Use the range.\n if (pips.mode === exports.PipsMode.Range || pips.mode === exports.PipsMode.Steps) {\n return scope_Spectrum.xVal;\n }\n if (pips.mode === exports.PipsMode.Count) {\n if (pips.values < 2) {\n throw new Error(\"noUiSlider: 'values' (>= 2) required for mode 'count'.\");\n }\n // Divide 0 - 100 in 'count' parts.\n var interval = pips.values - 1;\n var spread = 100 / interval;\n var values = [];\n // List these parts and have them handled as 'positions'.\n while (interval--) {\n values[interval] = interval * spread;\n }\n values.push(100);\n return mapToRange(values, pips.stepped);\n }\n if (pips.mode === exports.PipsMode.Positions) {\n // Map all percentages to on-range values.\n return mapToRange(pips.values, pips.stepped);\n }\n if (pips.mode === exports.PipsMode.Values) {\n // If the value must be stepped, it needs to be converted to a percentage first.\n if (pips.stepped) {\n return pips.values.map(function (value) {\n // Convert to percentage, apply step, return to value.\n return scope_Spectrum.fromStepping(scope_Spectrum.getStep(scope_Spectrum.toStepping(value)));\n });\n }\n // Otherwise, we can simply use the values.\n return pips.values;\n }\n return []; // pips.mode = never\n }\n function mapToRange(values, stepped) {\n return values.map(function (value) {\n return scope_Spectrum.fromStepping(stepped ? scope_Spectrum.getStep(value) : value);\n });\n }\n function generateSpread(pips) {\n function safeIncrement(value, increment) {\n // Avoid floating point variance by dropping the smallest decimal places.\n return Number((value + increment).toFixed(7));\n }\n var group = getGroup(pips);\n var indexes = {};\n var firstInRange = scope_Spectrum.xVal[0];\n var lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length - 1];\n var ignoreFirst = false;\n var ignoreLast = false;\n var prevPct = 0;\n // Create a copy of the group, sort it and filter away all duplicates.\n group = unique(group.slice().sort(function (a, b) {\n return a - b;\n }));\n // Make sure the range starts with the first element.\n if (group[0] !== firstInRange) {\n group.unshift(firstInRange);\n ignoreFirst = true;\n }\n // Likewise for the last one.\n if (group[group.length - 1] !== lastInRange) {\n group.push(lastInRange);\n ignoreLast = true;\n }\n group.forEach(function (current, index) {\n // Get the current step and the lower + upper positions.\n var step;\n var i;\n var q;\n var low = current;\n var high = group[index + 1];\n var newPct;\n var pctDifference;\n var pctPos;\n var type;\n var steps;\n var realSteps;\n var stepSize;\n var isSteps = pips.mode === exports.PipsMode.Steps;\n // When using 'steps' mode, use the provided steps.\n // Otherwise, we'll step on to the next subrange.\n if (isSteps) {\n step = scope_Spectrum.xNumSteps[index];\n }\n // Default to a 'full' step.\n if (!step) {\n step = high - low;\n }\n // If high is undefined we are at the last subrange. Make sure it iterates once (#1088)\n if (high === undefined) {\n high = low;\n }\n // Make sure step isn't 0, which would cause an infinite loop (#654)\n step = Math.max(step, 0.0000001);\n // Find all steps in the subrange.\n for (i = low; i <= high; i = safeIncrement(i, step)) {\n // Get the percentage value for the current step,\n // calculate the size for the subrange.\n newPct = scope_Spectrum.toStepping(i);\n pctDifference = newPct - prevPct;\n steps = pctDifference / (pips.density || 1);\n realSteps = Math.round(steps);\n // This ratio represents the amount of percentage-space a point indicates.\n // For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-divided.\n // Round the percentage offset to an even number, then divide by two\n // to spread the offset on both sides of the range.\n stepSize = pctDifference / realSteps;\n // Divide all points evenly, adding the correct number to this subrange.\n // Run up to <= so that 100% gets a point, event if ignoreLast is set.\n for (q = 1; q <= realSteps; q += 1) {\n // The ratio between the rounded value and the actual size might be ~1% off.\n // Correct the percentage offset by the number of points\n // per subrange. density = 1 will result in 100 points on the\n // full range, 2 for 50, 4 for 25, etc.\n pctPos = prevPct + q * stepSize;\n indexes[pctPos.toFixed(5)] = [scope_Spectrum.fromStepping(pctPos), 0];\n }\n // Determine the point type.\n type = group.indexOf(i) > -1 ? exports.PipsType.LargeValue : isSteps ? exports.PipsType.SmallValue : exports.PipsType.NoValue;\n // Enforce the 'ignoreFirst' option by overwriting the type for 0.\n if (!index && ignoreFirst && i !== high) {\n type = 0;\n }\n if (!(i === high && ignoreLast)) {\n // Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value.\n indexes[newPct.toFixed(5)] = [i, type];\n }\n // Update the percentage count.\n prevPct = newPct;\n }\n });\n return indexes;\n }\n function addMarking(spread, filterFunc, formatter) {\n var _a, _b;\n var element = scope_Document.createElement(\"div\");\n var valueSizeClasses = (_a = {},\n _a[exports.PipsType.None] = \"\",\n _a[exports.PipsType.NoValue] = options.cssClasses.valueNormal,\n _a[exports.PipsType.LargeValue] = options.cssClasses.valueLarge,\n _a[exports.PipsType.SmallValue] = options.cssClasses.valueSub,\n _a);\n var markerSizeClasses = (_b = {},\n _b[exports.PipsType.None] = \"\",\n _b[exports.PipsType.NoValue] = options.cssClasses.markerNormal,\n _b[exports.PipsType.LargeValue] = options.cssClasses.markerLarge,\n _b[exports.PipsType.SmallValue] = options.cssClasses.markerSub,\n _b);\n var valueOrientationClasses = [options.cssClasses.valueHorizontal, options.cssClasses.valueVertical];\n var markerOrientationClasses = [options.cssClasses.markerHorizontal, options.cssClasses.markerVertical];\n addClass(element, options.cssClasses.pips);\n addClass(element, options.ort === 0 ? options.cssClasses.pipsHorizontal : options.cssClasses.pipsVertical);\n function getClasses(type, source) {\n var a = source === options.cssClasses.value;\n var orientationClasses = a ? valueOrientationClasses : markerOrientationClasses;\n var sizeClasses = a ? valueSizeClasses : markerSizeClasses;\n return source + \" \" + orientationClasses[options.ort] + \" \" + sizeClasses[type];\n }\n function addSpread(offset, value, type) {\n // Apply the filter function, if it is set.\n type = filterFunc ? filterFunc(value, type) : type;\n if (type === exports.PipsType.None) {\n return;\n }\n // Add a marker for every point\n var node = addNodeTo(element, false);\n node.className = getClasses(type, options.cssClasses.marker);\n node.style[options.style] = offset + \"%\";\n // Values are only appended for points marked '1' or '2'.\n if (type > exports.PipsType.NoValue) {\n node = addNodeTo(element, false);\n node.className = getClasses(type, options.cssClasses.value);\n node.setAttribute(\"data-value\", String(value));\n node.style[options.style] = offset + \"%\";\n node.innerHTML = String(formatter.to(value));\n }\n }\n // Append all points.\n Object.keys(spread).forEach(function (offset) {\n addSpread(offset, spread[offset][0], spread[offset][1]);\n });\n return element;\n }\n function removePips() {\n if (scope_Pips) {\n removeElement(scope_Pips);\n scope_Pips = null;\n }\n }\n function pips(pips) {\n // Fix #669\n removePips();\n var spread = generateSpread(pips);\n var filter = pips.filter;\n var format = pips.format || {\n to: function (value) {\n return String(Math.round(value));\n }\n };\n scope_Pips = scope_Target.appendChild(addMarking(spread, filter, format));\n return scope_Pips;\n }\n // Shorthand for base dimensions.\n function baseSize() {\n var rect = scope_Base.getBoundingClientRect();\n var alt = (\"offset\" + [\"Width\", \"Height\"][options.ort]);\n return options.ort === 0 ? rect.width || scope_Base[alt] : rect.height || scope_Base[alt];\n }\n // Handler for attaching events trough a proxy.\n function attachEvent(events, element, callback, data) {\n // This function can be used to 'filter' events to the slider.\n // element is a node, not a nodeList\n var method = function (event) {\n var e = fixEvent(event, data.pageOffset, data.target || element);\n // fixEvent returns false if this event has a different target\n // when handling (multi-) touch events;\n if (!e) {\n return false;\n }\n // doNotReject is passed by all end events to make sure released touches\n // are not rejected, leaving the slider \"stuck\" to the cursor;\n if (isSliderDisabled() && !data.doNotReject) {\n return false;\n }\n // Stop if an active 'tap' transition is taking place.\n if (hasClass(scope_Target, options.cssClasses.tap) && !data.doNotReject) {\n return false;\n }\n // Ignore right or middle clicks on start #454\n if (events === actions.start && e.buttons !== undefined && e.buttons > 1) {\n return false;\n }\n // Ignore right or middle clicks on start #454\n if (data.hover && e.buttons) {\n return false;\n }\n // 'supportsPassive' is only true if a browser also supports touch-action: none in CSS.\n // iOS safari does not, so it doesn't get to benefit from passive scrolling. iOS does support\n // touch-action: manipulation, but that allows panning, which breaks\n // sliders after zooming/on non-responsive pages.\n // See: https://bugs.webkit.org/show_bug.cgi?id=133112\n if (!supportsPassive) {\n e.preventDefault();\n }\n e.calcPoint = e.points[options.ort];\n // Call the event handler with the event [ and additional data ].\n callback(e, data);\n return;\n };\n var methods = [];\n // Bind a closure on the target for every event type.\n events.split(\" \").forEach(function (eventName) {\n element.addEventListener(eventName, method, supportsPassive ? { passive: true } : false);\n methods.push([eventName, method]);\n });\n return methods;\n }\n // Provide a clean event with standardized offset values.\n function fixEvent(e, pageOffset, eventTarget) {\n // Filter the event to register the type, which can be\n // touch, mouse or pointer. Offset changes need to be\n // made on an event specific basis.\n var touch = e.type.indexOf(\"touch\") === 0;\n var mouse = e.type.indexOf(\"mouse\") === 0;\n var pointer = e.type.indexOf(\"pointer\") === 0;\n var x = 0;\n var y = 0;\n // IE10 implemented pointer events with a prefix;\n if (e.type.indexOf(\"MSPointer\") === 0) {\n pointer = true;\n }\n // Erroneous events seem to be passed in occasionally on iOS/iPadOS after user finishes interacting with\n // the slider. They appear to be of type MouseEvent, yet they don't have usual properties set. Ignore\n // events that have no touches or buttons associated with them. (#1057, #1079, #1095)\n if (e.type === \"mousedown\" && !e.buttons && !e.touches) {\n return false;\n }\n // The only thing one handle should be concerned about is the touches that originated on top of it.\n if (touch) {\n // Returns true if a touch originated on the target.\n var isTouchOnTarget = function (checkTouch) {\n var target = checkTouch.target;\n return (target === eventTarget ||\n eventTarget.contains(target) ||\n (e.composed && e.composedPath().shift() === eventTarget));\n };\n // In the case of touchstart events, we need to make sure there is still no more than one\n // touch on the target so we look amongst all touches.\n if (e.type === \"touchstart\") {\n var targetTouches = Array.prototype.filter.call(e.touches, isTouchOnTarget);\n // Do not support more than one touch per handle.\n if (targetTouches.length > 1) {\n return false;\n }\n x = targetTouches[0].pageX;\n y = targetTouches[0].pageY;\n }\n else {\n // In the other cases, find on changedTouches is enough.\n var targetTouch = Array.prototype.find.call(e.changedTouches, isTouchOnTarget);\n // Cancel if the target touch has not moved.\n if (!targetTouch) {\n return false;\n }\n x = targetTouch.pageX;\n y = targetTouch.pageY;\n }\n }\n pageOffset = pageOffset || getPageOffset(scope_Document);\n if (mouse || pointer) {\n x = e.clientX + pageOffset.x;\n y = e.clientY + pageOffset.y;\n }\n e.pageOffset = pageOffset;\n e.points = [x, y];\n e.cursor = mouse || pointer; // Fix #435\n return e;\n }\n // Translate a coordinate in the document to a percentage on the slider\n function calcPointToPercentage(calcPoint) {\n var location = calcPoint - offset(scope_Base, options.ort);\n var proposal = (location * 100) / baseSize();\n // Clamp proposal between 0% and 100%\n // Out-of-bound coordinates may occur when .noUi-base pseudo-elements\n // are used (e.g. contained handles feature)\n proposal = limit(proposal);\n return options.dir ? 100 - proposal : proposal;\n }\n // Find handle closest to a certain percentage on the slider\n function getClosestHandle(clickedPosition) {\n var smallestDifference = 100;\n var handleNumber = false;\n scope_Handles.forEach(function (handle, index) {\n // Disabled handles are ignored\n if (isHandleDisabled(index)) {\n return;\n }\n var handlePosition = scope_Locations[index];\n var differenceWithThisHandle = Math.abs(handlePosition - clickedPosition);\n // Initial state\n var clickAtEdge = differenceWithThisHandle === 100 && smallestDifference === 100;\n // Difference with this handle is smaller than the previously checked handle\n var isCloser = differenceWithThisHandle < smallestDifference;\n var isCloserAfter = differenceWithThisHandle <= smallestDifference && clickedPosition > handlePosition;\n if (isCloser || isCloserAfter || clickAtEdge) {\n handleNumber = index;\n smallestDifference = differenceWithThisHandle;\n }\n });\n return handleNumber;\n }\n // Fire 'end' when a mouse or pen leaves the document.\n function documentLeave(event, data) {\n if (event.type === \"mouseout\" &&\n event.target.nodeName === \"HTML\" &&\n event.relatedTarget === null) {\n eventEnd(event, data);\n }\n }\n // Handle movement on document for handle and range drag.\n function eventMove(event, data) {\n // Fix #498\n // Check value of .buttons in 'start' to work around a bug in IE10 mobile (data.buttonsProperty).\n // https://connect.microsoft.com/IE/feedback/details/927005/mobile-ie10-windows-phone-buttons-property-of-pointermove-event-always-zero\n // IE9 has .buttons and .which zero on mousemove.\n // Firefox breaks the spec MDN defines.\n if (navigator.appVersion.indexOf(\"MSIE 9\") === -1 && event.buttons === 0 && data.buttonsProperty !== 0) {\n return eventEnd(event, data);\n }\n // Check if we are moving up or down\n var movement = (options.dir ? -1 : 1) * (event.calcPoint - data.startCalcPoint);\n // Convert the movement into a percentage of the slider width/height\n var proposal = (movement * 100) / data.baseSize;\n moveHandles(movement > 0, proposal, data.locations, data.handleNumbers, data.connect);\n }\n // Unbind move events on document, call callbacks.\n function eventEnd(event, data) {\n // The handle is no longer active, so remove the class.\n if (data.handle) {\n removeClass(data.handle, options.cssClasses.active);\n scope_ActiveHandlesCount -= 1;\n }\n // Unbind the move and end events, which are added on 'start'.\n data.listeners.forEach(function (c) {\n scope_DocumentElement.removeEventListener(c[0], c[1]);\n });\n if (scope_ActiveHandlesCount === 0) {\n // Remove dragging class.\n removeClass(scope_Target, options.cssClasses.drag);\n setZindex();\n // Remove cursor styles and text-selection events bound to the body.\n if (event.cursor) {\n scope_Body.style.cursor = \"\";\n scope_Body.removeEventListener(\"selectstart\", preventDefault);\n }\n }\n data.handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"change\", handleNumber);\n fireEvent(\"set\", handleNumber);\n fireEvent(\"end\", handleNumber);\n });\n }\n // Bind move events on document.\n function eventStart(event, data) {\n // Ignore event if any handle is disabled\n if (data.handleNumbers.some(isHandleDisabled)) {\n return;\n }\n var handle;\n if (data.handleNumbers.length === 1) {\n var handleOrigin = scope_Handles[data.handleNumbers[0]];\n handle = handleOrigin.children[0];\n scope_ActiveHandlesCount += 1;\n // Mark the handle as 'active' so it can be styled.\n addClass(handle, options.cssClasses.active);\n }\n // A drag should never propagate up to the 'tap' event.\n event.stopPropagation();\n // Record the event listeners.\n var listeners = [];\n // Attach the move and end events.\n var moveEvent = attachEvent(actions.move, scope_DocumentElement, eventMove, {\n // The event target has changed so we need to propagate the original one so that we keep\n // relying on it to extract target touches.\n target: event.target,\n handle: handle,\n connect: data.connect,\n listeners: listeners,\n startCalcPoint: event.calcPoint,\n baseSize: baseSize(),\n pageOffset: event.pageOffset,\n handleNumbers: data.handleNumbers,\n buttonsProperty: event.buttons,\n locations: scope_Locations.slice()\n });\n var endEvent = attachEvent(actions.end, scope_DocumentElement, eventEnd, {\n target: event.target,\n handle: handle,\n listeners: listeners,\n doNotReject: true,\n handleNumbers: data.handleNumbers\n });\n var outEvent = attachEvent(\"mouseout\", scope_DocumentElement, documentLeave, {\n target: event.target,\n handle: handle,\n listeners: listeners,\n doNotReject: true,\n handleNumbers: data.handleNumbers\n });\n // We want to make sure we pushed the listeners in the listener list rather than creating\n // a new one as it has already been passed to the event handlers.\n listeners.push.apply(listeners, moveEvent.concat(endEvent, outEvent));\n // Text selection isn't an issue on touch devices,\n // so adding cursor styles can be skipped.\n if (event.cursor) {\n // Prevent the 'I' cursor and extend the range-drag cursor.\n scope_Body.style.cursor = getComputedStyle(event.target).cursor;\n // Mark the target with a dragging state.\n if (scope_Handles.length > 1) {\n addClass(scope_Target, options.cssClasses.drag);\n }\n // Prevent text selection when dragging the handles.\n // In noUiSlider <= 9.2.0, this was handled by calling preventDefault on mouse/touch start/move,\n // which is scroll blocking. The selectstart event is supported by FireFox starting from version 52,\n // meaning the only holdout is iOS Safari. This doesn't matter: text selection isn't triggered there.\n // The 'cursor' flag is false.\n // See: http://caniuse.com/#search=selectstart\n scope_Body.addEventListener(\"selectstart\", preventDefault, false);\n }\n data.handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"start\", handleNumber);\n });\n }\n // Move closest handle to tapped location.\n function eventTap(event) {\n // The tap event shouldn't propagate up\n event.stopPropagation();\n var proposal = calcPointToPercentage(event.calcPoint);\n var handleNumber = getClosestHandle(proposal);\n // Tackle the case that all handles are 'disabled'.\n if (handleNumber === false) {\n return;\n }\n // Flag the slider as it is now in a transitional state.\n // Transition takes a configurable amount of ms (default 300). Re-enable the slider after that.\n if (!options.events.snap) {\n addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration);\n }\n setHandle(handleNumber, proposal, true, true);\n setZindex();\n fireEvent(\"slide\", handleNumber, true);\n fireEvent(\"update\", handleNumber, true);\n if (!options.events.snap) {\n fireEvent(\"change\", handleNumber, true);\n fireEvent(\"set\", handleNumber, true);\n }\n else {\n eventStart(event, { handleNumbers: [handleNumber] });\n }\n }\n // Fires a 'hover' event for a hovered mouse/pen position.\n function eventHover(event) {\n var proposal = calcPointToPercentage(event.calcPoint);\n var to = scope_Spectrum.getStep(proposal);\n var value = scope_Spectrum.fromStepping(to);\n Object.keys(scope_Events).forEach(function (targetEvent) {\n if (\"hover\" === targetEvent.split(\".\")[0]) {\n scope_Events[targetEvent].forEach(function (callback) {\n callback.call(scope_Self, value);\n });\n }\n });\n }\n // Handles keydown on focused handles\n // Don't move the document when pressing arrow keys on focused handles\n function eventKeydown(event, handleNumber) {\n if (isSliderDisabled() || isHandleDisabled(handleNumber)) {\n return false;\n }\n var horizontalKeys = [\"Left\", \"Right\"];\n var verticalKeys = [\"Down\", \"Up\"];\n var largeStepKeys = [\"PageDown\", \"PageUp\"];\n var edgeKeys = [\"Home\", \"End\"];\n if (options.dir && !options.ort) {\n // On an right-to-left slider, the left and right keys act inverted\n horizontalKeys.reverse();\n }\n else if (options.ort && !options.dir) {\n // On a top-to-bottom slider, the up and down keys act inverted\n verticalKeys.reverse();\n largeStepKeys.reverse();\n }\n // Strip \"Arrow\" for IE compatibility. https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key\n var key = event.key.replace(\"Arrow\", \"\");\n var isLargeDown = key === largeStepKeys[0];\n var isLargeUp = key === largeStepKeys[1];\n var isDown = key === verticalKeys[0] || key === horizontalKeys[0] || isLargeDown;\n var isUp = key === verticalKeys[1] || key === horizontalKeys[1] || isLargeUp;\n var isMin = key === edgeKeys[0];\n var isMax = key === edgeKeys[1];\n if (!isDown && !isUp && !isMin && !isMax) {\n return true;\n }\n event.preventDefault();\n var to;\n if (isUp || isDown) {\n var direction = isDown ? 0 : 1;\n var steps = getNextStepsForHandle(handleNumber);\n var step = steps[direction];\n // At the edge of a slider, do nothing\n if (step === null) {\n return false;\n }\n // No step set, use the default of 10% of the sub-range\n if (step === false) {\n step = scope_Spectrum.getDefaultStep(scope_Locations[handleNumber], isDown, options.keyboardDefaultStep);\n }\n if (isLargeUp || isLargeDown) {\n step *= options.keyboardPageMultiplier;\n }\n else {\n step *= options.keyboardMultiplier;\n }\n // Step over zero-length ranges (#948);\n step = Math.max(step, 0.0000001);\n // Decrement for down steps\n step = (isDown ? -1 : 1) * step;\n to = scope_Values[handleNumber] + step;\n }\n else if (isMax) {\n // End key\n to = options.spectrum.xVal[options.spectrum.xVal.length - 1];\n }\n else {\n // Home key\n to = options.spectrum.xVal[0];\n }\n setHandle(handleNumber, scope_Spectrum.toStepping(to), true, true);\n fireEvent(\"slide\", handleNumber);\n fireEvent(\"update\", handleNumber);\n fireEvent(\"change\", handleNumber);\n fireEvent(\"set\", handleNumber);\n return false;\n }\n // Attach events to several slider parts.\n function bindSliderEvents(behaviour) {\n // Attach the standard drag event to the handles.\n if (!behaviour.fixed) {\n scope_Handles.forEach(function (handle, index) {\n // These events are only bound to the visual handle\n // element, not the 'real' origin element.\n attachEvent(actions.start, handle.children[0], eventStart, {\n handleNumbers: [index]\n });\n });\n }\n // Attach the tap event to the slider base.\n if (behaviour.tap) {\n attachEvent(actions.start, scope_Base, eventTap, {});\n }\n // Fire hover events\n if (behaviour.hover) {\n attachEvent(actions.move, scope_Base, eventHover, {\n hover: true\n });\n }\n // Make the range draggable.\n if (behaviour.drag) {\n scope_Connects.forEach(function (connect, index) {\n if (connect === false || index === 0 || index === scope_Connects.length - 1) {\n return;\n }\n var handleBefore = scope_Handles[index - 1];\n var handleAfter = scope_Handles[index];\n var eventHolders = [connect];\n var handlesToDrag = [handleBefore, handleAfter];\n var handleNumbersToDrag = [index - 1, index];\n addClass(connect, options.cssClasses.draggable);\n // When the range is fixed, the entire range can\n // be dragged by the handles. The handle in the first\n // origin will propagate the start event upward,\n // but it needs to be bound manually on the other.\n if (behaviour.fixed) {\n eventHolders.push(handleBefore.children[0]);\n eventHolders.push(handleAfter.children[0]);\n }\n if (behaviour.dragAll) {\n handlesToDrag = scope_Handles;\n handleNumbersToDrag = scope_HandleNumbers;\n }\n eventHolders.forEach(function (eventHolder) {\n attachEvent(actions.start, eventHolder, eventStart, {\n handles: handlesToDrag,\n handleNumbers: handleNumbersToDrag,\n connect: connect\n });\n });\n });\n }\n }\n // Attach an event to this slider, possibly including a namespace\n function bindEvent(namespacedEvent, callback) {\n scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || [];\n scope_Events[namespacedEvent].push(callback);\n // If the event bound is 'update,' fire it immediately for all handles.\n if (namespacedEvent.split(\".\")[0] === \"update\") {\n scope_Handles.forEach(function (a, index) {\n fireEvent(\"update\", index);\n });\n }\n }\n function isInternalNamespace(namespace) {\n return namespace === INTERNAL_EVENT_NS.aria || namespace === INTERNAL_EVENT_NS.tooltips;\n }\n // Undo attachment of event\n function removeEvent(namespacedEvent) {\n var event = namespacedEvent && namespacedEvent.split(\".\")[0];\n var namespace = event ? namespacedEvent.substring(event.length) : namespacedEvent;\n Object.keys(scope_Events).forEach(function (bind) {\n var tEvent = bind.split(\".\")[0];\n var tNamespace = bind.substring(tEvent.length);\n if ((!event || event === tEvent) && (!namespace || namespace === tNamespace)) {\n // only delete protected internal event if intentional\n if (!isInternalNamespace(tNamespace) || namespace === tNamespace) {\n delete scope_Events[bind];\n }\n }\n });\n }\n // External event handling\n function fireEvent(eventName, handleNumber, tap) {\n Object.keys(scope_Events).forEach(function (targetEvent) {\n var eventType = targetEvent.split(\".\")[0];\n if (eventName === eventType) {\n scope_Events[targetEvent].forEach(function (callback) {\n callback.call(\n // Use the slider public API as the scope ('this')\n scope_Self, \n // Return values as array, so arg_1[arg_2] is always valid.\n scope_Values.map(options.format.to), \n // Handle index, 0 or 1\n handleNumber, \n // Un-formatted slider values\n scope_Values.slice(), \n // Event is fired by tap, true or false\n tap || false, \n // Left offset of the handle, in relation to the slider\n scope_Locations.slice(), \n // add the slider public API to an accessible parameter when this is unavailable\n scope_Self);\n });\n }\n });\n }\n // Split out the handle positioning logic so the Move event can use it, too\n function checkHandlePosition(reference, handleNumber, to, lookBackward, lookForward, getValue) {\n var distance;\n // For sliders with multiple handles, limit movement to the other handle.\n // Apply the margin option by adding it to the handle positions.\n if (scope_Handles.length > 1 && !options.events.unconstrained) {\n if (lookBackward && handleNumber > 0) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber - 1], options.margin, false);\n to = Math.max(to, distance);\n }\n if (lookForward && handleNumber < scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber + 1], options.margin, true);\n to = Math.min(to, distance);\n }\n }\n // The limit option has the opposite effect, limiting handles to a\n // maximum distance from another. Limit must be > 0, as otherwise\n // handles would be unmovable.\n if (scope_Handles.length > 1 && options.limit) {\n if (lookBackward && handleNumber > 0) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber - 1], options.limit, false);\n to = Math.min(to, distance);\n }\n if (lookForward && handleNumber < scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(reference[handleNumber + 1], options.limit, true);\n to = Math.max(to, distance);\n }\n }\n // The padding option keeps the handles a certain distance from the\n // edges of the slider. Padding must be > 0.\n if (options.padding) {\n if (handleNumber === 0) {\n distance = scope_Spectrum.getAbsoluteDistance(0, options.padding[0], false);\n to = Math.max(to, distance);\n }\n if (handleNumber === scope_Handles.length - 1) {\n distance = scope_Spectrum.getAbsoluteDistance(100, options.padding[1], true);\n to = Math.min(to, distance);\n }\n }\n to = scope_Spectrum.getStep(to);\n // Limit percentage to the 0 - 100 range\n to = limit(to);\n // Return false if handle can't move\n if (to === reference[handleNumber] && !getValue) {\n return false;\n }\n return to;\n }\n // Uses slider orientation to create CSS rules. a = base value;\n function inRuleOrder(v, a) {\n var o = options.ort;\n return (o ? a : v) + \", \" + (o ? v : a);\n }\n // Moves handle(s) by a percentage\n // (bool, % to move, [% where handle started, ...], [index in scope_Handles, ...])\n function moveHandles(upward, proposal, locations, handleNumbers, connect) {\n var proposals = locations.slice();\n // Store first handle now, so we still have it in case handleNumbers is reversed\n var firstHandle = handleNumbers[0];\n var b = [!upward, upward];\n var f = [upward, !upward];\n // Copy handleNumbers so we don't change the dataset\n handleNumbers = handleNumbers.slice();\n // Check to see which handle is 'leading'.\n // If that one can't move the second can't either.\n if (upward) {\n handleNumbers.reverse();\n }\n // Step 1: get the maximum percentage that any of the handles can move\n if (handleNumbers.length > 1) {\n handleNumbers.forEach(function (handleNumber, o) {\n var to = checkHandlePosition(proposals, handleNumber, proposals[handleNumber] + proposal, b[o], f[o], false);\n // Stop if one of the handles can't move.\n if (to === false) {\n proposal = 0;\n }\n else {\n proposal = to - proposals[handleNumber];\n proposals[handleNumber] = to;\n }\n });\n }\n // If using one handle, check backward AND forward\n else {\n b = f = [true];\n }\n var state = false;\n // Step 2: Try to set the handles with the found percentage\n handleNumbers.forEach(function (handleNumber, o) {\n state = setHandle(handleNumber, locations[handleNumber] + proposal, b[o], f[o]) || state;\n });\n // Step 3: If a handle moved, fire events\n if (state) {\n handleNumbers.forEach(function (handleNumber) {\n fireEvent(\"update\", handleNumber);\n fireEvent(\"slide\", handleNumber);\n });\n // If target is a connect, then fire drag event\n if (connect != undefined) {\n fireEvent(\"drag\", firstHandle);\n }\n }\n }\n // Takes a base value and an offset. This offset is used for the connect bar size.\n // In the initial design for this feature, the origin element was 1% wide.\n // Unfortunately, a rounding bug in Chrome makes it impossible to implement this feature\n // in this manner: https://bugs.chromium.org/p/chromium/issues/detail?id=798223\n function transformDirection(a, b) {\n return options.dir ? 100 - a - b : a;\n }\n // Updates scope_Locations and scope_Values, updates visual state\n function updateHandlePosition(handleNumber, to) {\n // Update locations.\n scope_Locations[handleNumber] = to;\n // Convert the value to the slider stepping/range.\n scope_Values[handleNumber] = scope_Spectrum.fromStepping(to);\n var translation = 10 * (transformDirection(to, 0) - scope_DirOffset);\n var translateRule = \"translate(\" + inRuleOrder(translation + \"%\", \"0\") + \")\";\n scope_Handles[handleNumber].style[options.transformRule] = translateRule;\n updateConnect(handleNumber);\n updateConnect(handleNumber + 1);\n }\n // Handles before the slider middle are stacked later = higher,\n // Handles after the middle later is lower\n // [[7] [8] .......... | .......... [5] [4]\n function setZindex() {\n scope_HandleNumbers.forEach(function (handleNumber) {\n var dir = scope_Locations[handleNumber] > 50 ? -1 : 1;\n var zIndex = 3 + (scope_Handles.length + dir * handleNumber);\n scope_Handles[handleNumber].style.zIndex = String(zIndex);\n });\n }\n // Test suggested values and apply margin, step.\n // if exactInput is true, don't run checkHandlePosition, then the handle can be placed in between steps (#436)\n function setHandle(handleNumber, to, lookBackward, lookForward, exactInput) {\n if (!exactInput) {\n to = checkHandlePosition(scope_Locations, handleNumber, to, lookBackward, lookForward, false);\n }\n if (to === false) {\n return false;\n }\n updateHandlePosition(handleNumber, to);\n return true;\n }\n // Updates style attribute for connect nodes\n function updateConnect(index) {\n // Skip connects set to false\n if (!scope_Connects[index]) {\n return;\n }\n var l = 0;\n var h = 100;\n if (index !== 0) {\n l = scope_Locations[index - 1];\n }\n if (index !== scope_Connects.length - 1) {\n h = scope_Locations[index];\n }\n // We use two rules:\n // 'translate' to change the left/top offset;\n // 'scale' to change the width of the element;\n // As the element has a width of 100%, a translation of 100% is equal to 100% of the parent (.noUi-base)\n var connectWidth = h - l;\n var translateRule = \"translate(\" + inRuleOrder(transformDirection(l, connectWidth) + \"%\", \"0\") + \")\";\n var scaleRule = \"scale(\" + inRuleOrder(connectWidth / 100, \"1\") + \")\";\n scope_Connects[index].style[options.transformRule] =\n translateRule + \" \" + scaleRule;\n }\n // Parses value passed to .set method. Returns current value if not parse-able.\n function resolveToValue(to, handleNumber) {\n // Setting with null indicates an 'ignore'.\n // Inputting 'false' is invalid.\n if (to === null || to === false || to === undefined) {\n return scope_Locations[handleNumber];\n }\n // If a formatted number was passed, attempt to decode it.\n if (typeof to === \"number\") {\n to = String(to);\n }\n to = options.format.from(to);\n if (to !== false) {\n to = scope_Spectrum.toStepping(to);\n }\n // If parsing the number failed, use the current value.\n if (to === false || isNaN(to)) {\n return scope_Locations[handleNumber];\n }\n return to;\n }\n // Set the slider value.\n function valueSet(input, fireSetEvent, exactInput) {\n var values = asArray(input);\n var isInit = scope_Locations[0] === undefined;\n // Event fires by default\n fireSetEvent = fireSetEvent === undefined ? true : fireSetEvent;\n // Animation is optional.\n // Make sure the initial values were set before using animated placement.\n if (options.animate && !isInit) {\n addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration);\n }\n // First pass, without lookAhead but with lookBackward. Values are set from left to right.\n scope_HandleNumbers.forEach(function (handleNumber) {\n setHandle(handleNumber, resolveToValue(values[handleNumber], handleNumber), true, false, exactInput);\n });\n var i = scope_HandleNumbers.length === 1 ? 0 : 1;\n // Spread handles evenly across the slider if the range has no size (min=max)\n if (isInit && scope_Spectrum.hasNoSize()) {\n exactInput = true;\n scope_Locations[0] = 0;\n if (scope_HandleNumbers.length > 1) {\n var space_1 = 100 / (scope_HandleNumbers.length - 1);\n scope_HandleNumbers.forEach(function (handleNumber) {\n scope_Locations[handleNumber] = handleNumber * space_1;\n });\n }\n }\n // Secondary passes. Now that all base values are set, apply constraints.\n // Iterate all handles to ensure constraints are applied for the entire slider (Issue #1009)\n for (; i < scope_HandleNumbers.length; ++i) {\n scope_HandleNumbers.forEach(function (handleNumber) {\n setHandle(handleNumber, scope_Locations[handleNumber], true, true, exactInput);\n });\n }\n setZindex();\n scope_HandleNumbers.forEach(function (handleNumber) {\n fireEvent(\"update\", handleNumber);\n // Fire the event only for handles that received a new value, as per #579\n if (values[handleNumber] !== null && fireSetEvent) {\n fireEvent(\"set\", handleNumber);\n }\n });\n }\n // Reset slider to initial values\n function valueReset(fireSetEvent) {\n valueSet(options.start, fireSetEvent);\n }\n // Set value for a single handle\n function valueSetHandle(handleNumber, value, fireSetEvent, exactInput) {\n // Ensure numeric input\n handleNumber = Number(handleNumber);\n if (!(handleNumber >= 0 && handleNumber < scope_HandleNumbers.length)) {\n throw new Error(\"noUiSlider: invalid handle number, got: \" + handleNumber);\n }\n // Look both backward and forward, since we don't want this handle to \"push\" other handles (#960);\n // The exactInput argument can be used to ignore slider stepping (#436)\n setHandle(handleNumber, resolveToValue(value, handleNumber), true, true, exactInput);\n fireEvent(\"update\", handleNumber);\n if (fireSetEvent) {\n fireEvent(\"set\", handleNumber);\n }\n }\n // Get the slider value.\n function valueGet(unencoded) {\n if (unencoded === void 0) { unencoded = false; }\n if (unencoded) {\n // return a copy of the raw values\n return scope_Values.length === 1 ? scope_Values[0] : scope_Values.slice(0);\n }\n var values = scope_Values.map(options.format.to);\n // If only one handle is used, return a single value.\n if (values.length === 1) {\n return values[0];\n }\n return values;\n }\n // Removes classes from the root and empties it.\n function destroy() {\n // remove protected internal listeners\n removeEvent(INTERNAL_EVENT_NS.aria);\n removeEvent(INTERNAL_EVENT_NS.tooltips);\n Object.keys(options.cssClasses).forEach(function (key) {\n removeClass(scope_Target, options.cssClasses[key]);\n });\n while (scope_Target.firstChild) {\n scope_Target.removeChild(scope_Target.firstChild);\n }\n delete scope_Target.noUiSlider;\n }\n function getNextStepsForHandle(handleNumber) {\n var location = scope_Locations[handleNumber];\n var nearbySteps = scope_Spectrum.getNearbySteps(location);\n var value = scope_Values[handleNumber];\n var increment = nearbySteps.thisStep.step;\n var decrement = null;\n // If snapped, directly use defined step value\n if (options.snap) {\n return [\n value - nearbySteps.stepBefore.startValue || null,\n nearbySteps.stepAfter.startValue - value || null\n ];\n }\n // If the next value in this step moves into the next step,\n // the increment is the start of the next step - the current value\n if (increment !== false) {\n if (value + increment > nearbySteps.stepAfter.startValue) {\n increment = nearbySteps.stepAfter.startValue - value;\n }\n }\n // If the value is beyond the starting point\n if (value > nearbySteps.thisStep.startValue) {\n decrement = nearbySteps.thisStep.step;\n }\n else if (nearbySteps.stepBefore.step === false) {\n decrement = false;\n }\n // If a handle is at the start of a step, it always steps back into the previous step first\n else {\n decrement = value - nearbySteps.stepBefore.highestStep;\n }\n // Now, if at the slider edges, there is no in/decrement\n if (location === 100) {\n increment = null;\n }\n else if (location === 0) {\n decrement = null;\n }\n // As per #391, the comparison for the decrement step can have some rounding issues.\n var stepDecimals = scope_Spectrum.countStepDecimals();\n // Round per #391\n if (increment !== null && increment !== false) {\n increment = Number(increment.toFixed(stepDecimals));\n }\n if (decrement !== null && decrement !== false) {\n decrement = Number(decrement.toFixed(stepDecimals));\n }\n return [decrement, increment];\n }\n // Get the current step size for the slider.\n function getNextSteps() {\n return scope_HandleNumbers.map(getNextStepsForHandle);\n }\n // Updatable: margin, limit, padding, step, range, animate, snap\n function updateOptions(optionsToUpdate, fireSetEvent) {\n // Spectrum is created using the range, snap, direction and step options.\n // 'snap' and 'step' can be updated.\n // If 'snap' and 'step' are not passed, they should remain unchanged.\n var v = valueGet();\n var updateAble = [\n \"margin\",\n \"limit\",\n \"padding\",\n \"range\",\n \"animate\",\n \"snap\",\n \"step\",\n \"format\",\n \"pips\",\n \"tooltips\"\n ];\n // Only change options that we're actually passed to update.\n updateAble.forEach(function (name) {\n // Check for undefined. null removes the value.\n if (optionsToUpdate[name] !== undefined) {\n originalOptions[name] = optionsToUpdate[name];\n }\n });\n var newOptions = testOptions(originalOptions);\n // Load new options into the slider state\n updateAble.forEach(function (name) {\n if (optionsToUpdate[name] !== undefined) {\n options[name] = newOptions[name];\n }\n });\n scope_Spectrum = newOptions.spectrum;\n // Limit, margin and padding depend on the spectrum but are stored outside of it. (#677)\n options.margin = newOptions.margin;\n options.limit = newOptions.limit;\n options.padding = newOptions.padding;\n // Update pips, removes existing.\n if (options.pips) {\n pips(options.pips);\n }\n else {\n removePips();\n }\n // Update tooltips, removes existing.\n if (options.tooltips) {\n tooltips();\n }\n else {\n removeTooltips();\n }\n // Invalidate the current positioning so valueSet forces an update.\n scope_Locations = [];\n valueSet(isSet(optionsToUpdate.start) ? optionsToUpdate.start : v, fireSetEvent);\n }\n // Initialization steps\n function setupSlider() {\n // Create the base element, initialize HTML and set classes.\n // Add handles and connect elements.\n scope_Base = addSlider(scope_Target);\n addElements(options.connect, scope_Base);\n // Attach user events.\n bindSliderEvents(options.events);\n // Use the public value method to set the start values.\n valueSet(options.start);\n if (options.pips) {\n pips(options.pips);\n }\n if (options.tooltips) {\n tooltips();\n }\n aria();\n }\n setupSlider();\n var scope_Self = {\n destroy: destroy,\n steps: getNextSteps,\n on: bindEvent,\n off: removeEvent,\n get: valueGet,\n set: valueSet,\n setHandle: valueSetHandle,\n reset: valueReset,\n // Exposed for unit testing, don't use this in your application.\n __moveHandles: function (upward, proposal, handleNumbers) {\n moveHandles(upward, proposal, scope_Locations, handleNumbers);\n },\n options: originalOptions,\n updateOptions: updateOptions,\n target: scope_Target,\n removePips: removePips,\n removeTooltips: removeTooltips,\n getPositions: function () {\n return scope_Locations.slice();\n },\n getTooltips: function () {\n return scope_Tooltips;\n },\n getOrigins: function () {\n return scope_Handles;\n },\n pips: pips // Issue #594\n };\n return scope_Self;\n }\n // Run the standard initializer\n function initialize(target, originalOptions) {\n if (!target || !target.nodeName) {\n throw new Error(\"noUiSlider: create requires a single element, got: \" + target);\n }\n // Throw an error if the slider was already initialized.\n if (target.noUiSlider) {\n throw new Error(\"noUiSlider: Slider was already initialized.\");\n }\n // Test the options and create the slider environment;\n var options = testOptions(originalOptions);\n var api = scope(target, options, originalOptions);\n target.noUiSlider = api;\n return api;\n }\n var nouislider = {\n // Exposed for unit testing, don't use this in your application.\n __spectrum: Spectrum,\n // A reference to the default classes, allows global changes.\n // Use the cssClasses option for changes to one slider.\n cssClasses: cssClasses,\n create: initialize\n };\n\n exports.create = initialize;\n exports.cssClasses = cssClasses;\n exports['default'] = nouislider;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\", \"onChangeComplete\", \"onFocus\", \"onMouseEnter\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n onFocus = props.onFocus,\n onMouseEnter = props.onMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n var onInternalFocus = function onInternalFocus(e) {\n onFocus === null || onFocus === void 0 || onFocus(e, valueIndex);\n };\n var onInternalMouseEnter = function onInternalMouseEnter(e) {\n onMouseEnter(e, valueIndex);\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var divProps = {};\n if (valueIndex !== null) {\n var _getIndex;\n divProps = {\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': disabled,\n 'aria-label': getIndex(ariaLabelForHandle, valueIndex),\n 'aria-labelledby': getIndex(ariaLabelledByForHandle, valueIndex),\n 'aria-valuetext': (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n 'aria-orientation': direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical',\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onFocus: onInternalFocus,\n onMouseEnter: onInternalMouseEnter,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp\n };\n }\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, _defineProperty(_defineProperty({}, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), valueIndex !== null && range), \"\".concat(handlePrefixCls, \"-dragging\"), dragging), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle)\n }, divProps, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"activeHandleRender\", \"draggingIndex\", \"onFocus\"];\nimport * as React from 'react';\nimport { getIndex } from \"../util\";\nimport Handle from \"./Handle\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n draggingIndex = props.draggingIndex,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n }\n };\n });\n\n // =========================== Active ===========================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var onHandleFocus = function onHandleFocus(e, index) {\n setActiveIndex(index);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var onHandleMouseEnter = function onHandleMouseEnter(e, index) {\n setActiveIndex(index);\n };\n\n // =========================== Render ===========================\n // Handle Props\n var handleProps = _objectSpread({\n prefixCls: prefixCls,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender,\n onFocus: onHandleFocus,\n onMouseEnter: onHandleMouseEnter\n }, restProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index\n }, handleProps));\n }), activeHandleRender && /*#__PURE__*/React.createElement(Handle, _extends({\n key: \"a11y\"\n }, handleProps, {\n value: values[activeIndex],\n valueIndex: null,\n dragging: draggingIndex !== -1,\n render: activeHandleRender,\n style: {\n pointerEvents: 'none'\n },\n tabIndex: null,\n \"aria-hidden\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Mark = function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n};\nexport default Mark;","import * as React from 'react';\nimport Mark from \"./Mark\";\nvar Marks = function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n};\nexport default Marks;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport cls from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Handles from \"./Handles\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\nimport SliderContext from \"./context\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef(null);\n var containerRef = React.useRef(null);\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n return Object.keys(marks || {}).map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var finishChange = function finishChange() {\n var finishValue = getTriggerValue(rawValuesRef.current);\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(finishValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(finishValue);\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n if (e) {\n var _document$activeEleme, _document$activeEleme2;\n (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);\n handlesRef.current.focus(valueIndex);\n onStartDrag(e, valueIndex, cloneNextValues);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _containerRef$current2;\n var _document = document,\n activeElement = _document.activeElement;\n if ((_containerRef$current2 = containerRef.current) !== null && _containerRef$current2 !== void 0 && _containerRef$current2.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-vertical\"), vertical), \"\".concat(prefixCls, \"-horizontal\"), !vertical), \"\".concat(prefixCls, \"-with-marks\"), markList.length)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : undefined\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: finishChange\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Dot = function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n};\nexport default Dot;","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nvar Steps = function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n};\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nvar Track = function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n};\nexport default Track;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nvar Tracks = function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n if (!included) {\n return null;\n }\n\n // ========================== Render ==========================\n var tracksNode = classNames.tracks || styles.tracks ? /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }));\n};\nexport default Tracks;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nfunction useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useLayoutEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = useEvent(function (valueIndex, offsetPercent) {\n // Basic point offset\n\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n });\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValue(valueIndex, offSetPercent);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}\nexport default useDrag;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n return Math.max(min, Math.min(max, val));\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","import Slider from \"./Slider\";\nexport default Slider;","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar REACT_ELEMENT_TYPE_18 = Symbol.for('react.element');\nvar REACT_ELEMENT_TYPE_19 = Symbol.for('react.transitional.element');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n\n/**\n * Compatible with React 18 or 19 to check if node is a Fragment.\n */\nexport default function isFragment(object) {\n return (\n // Base object type\n object && _typeof(object) === 'object' && (\n // React Element type\n object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) &&\n // React Fragment type\n object.type === REACT_FRAGMENT_TYPE\n );\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","export { default as useEvent } from \"./hooks/useEvent\";\nexport { default as useMergedState } from \"./hooks/useMergedState\";\nexport { supportNodeRef, supportRef, useComposeRef } from \"./ref\";\nexport { default as get } from \"./utils/get\";\nexport { default as set } from \"./utils/set\";\nexport { default as warning } from \"./warning\";","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement } from 'react';\nimport { ForwardRef, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nimport isFragment from \"./React/isFragment\";\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n if (!nodeOrComponent) {\n return false;\n }\n\n // React 19 no need `forwardRef` anymore. So just pass if is a React element.\n if (isReactElement(nodeOrComponent) && nodeOrComponent.props.propertyIsEnumerable('ref')) {\n return true;\n }\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = function getNodeRef(node) {\n if (node && isReactElement(node)) {\n var ele = node;\n\n // Source from:\n // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/getReactNodeRef/getReactNodeRef.ts\n return ele.props.propertyIsEnumerable('ref') ? ele.props.ref : ele.ref;\n }\n return null;\n};","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","/** @license React v17.0.1\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\nvar Scheduler = require('scheduler');\nvar tracing = require('scheduler/tracing');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nif (!React) {\n {\n throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\nvar OffscreenComponent = 23;\nvar LegacyHiddenComponent = 24;\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableProfilerTimer = true; // Record durations for commit and passive effects phases.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar enableNewReconciler = false; // Errors that are thrown while unmounting (or after in the case of passive effects)\nvar warnAboutStringRefs = false;\n\nvar allNativeEvents = new Set();\n/**\n * Mapping from registration name to event name\n */\n\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true\n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n {\n if (registrationNameDependencies[registrationName]) {\n error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n }\n }\n\n registrationNameDependencies[registrationName] = dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n\n for (var i = 0; i < dependencies.length; i++) {\n allNativeEvents.add(dependencies[i]);\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': // $FlowIssue symbol is perfectly valid here\n\n case 'symbol':\n // eslint-disable-line\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n if ( propertyInfo.sanitizeURL) {\n // If we haven't fully disabled javascript: URLs, and if\n // the hydration is successful of a javascript: URL, we\n // still want to warn on the client.\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n } // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n } // If the object is an opaque reference ID, it's expected that\n // the next prop is different than the server value, so just return\n // expected\n\n\n if (isOpaqueHydratingObject(expected)) {\n return expected;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyName] = value;\n }\n\n return;\n } // The rest are treated as attributes with special cases.\n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n // If attribute type is boolean, we know for sure it won't be an execution sink\n // and we won't require Trusted Type here.\n attributeValue = '';\n } else {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n {\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nfunction describeFiber(fiber) {\n var owner = fiber._debugOwner ? fiber._debugOwner.type : null ;\n var source = fiber._debugSource ;\n\n switch (fiber.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(fiber.type);\n\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(fiber.type);\n\n case ForwardRef:\n return describeFunctionComponentFrame(fiber.type.render);\n\n case Block:\n return describeFunctionComponentFrame(fiber.type._render);\n\n case ClassComponent:\n return describeClassComponentFrame(fiber.type);\n\n default:\n return '';\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner.type);\n }\n }\n\n return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\n\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\nfunction getIsRendering() {\n {\n return isRendering;\n }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'object':\n case 'string':\n case 'undefined':\n return value;\n\n default:\n // function, symbol are assigned as empty strings\n return '';\n }\n}\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n }\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n set.call(this, value);\n }\n }); // We could've passed this the first time\n // but it triggers a bug in IE11 and Edge 14/15.\n // Calling defineProperty() again should be equivalent.\n // https://github.com/facebook/react/issues/11768\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n\n var hostProps = _assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n checkControlledValueProps('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value');\n return;\n }\n\n {\n // When syncing the value attribute, the value comes from a cascade of\n // properties:\n // 1. The value React property\n // 2. The defaultValue React property\n // 3. Otherwise there should be no change\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n // When syncing the checked attribute, it only changes when it needs\n // to be removed, such as transitioning from a checkbox into a text input\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n // default value provided by the browser. See: #12872\n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (!isHydrating) {\n {\n // When syncing the value attribute, the value property should use\n // the wrapperState._initialValue property. This uses:\n //\n // 1. The value React property when present\n // 2. The defaultValue React property when present\n // 3. An empty string\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n // Otherwise, the value attribute is synchronized to the property,\n // so we assign defaultValue to the same thing as the value property\n // assignment step above.\n node.defaultValue = initialValue;\n }\n } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n // When syncing the checked attribute, both the checked property and\n // attribute are assigned at the same time using defaultChecked. This uses:\n //\n // 1. The checked React property when present\n // 2. The defaultChecked React property when present\n // 3. Otherwise, false\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n\n\n var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n if (!otherProps) {\n {\n throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n }\n } // We need update the tracked value on the named cousin since the value\n // was changed but the input saw no event or value set\n\n\n updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n\n updateWrapper(otherNode, otherProps);\n }\n }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n var content = ''; // Flatten children. We'll warn if they are invalid\n // during validateProps() which runs for hydration too.\n // Note that this would throw on non-element objects.\n // Elements are stringified (which is normally irrelevant\n // but matters for ).\n\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n\n content += child; // Note: we don't warn about invalid children here.\n // Instead, this is done separately below so that\n // it happens during the hydration code path too.\n });\n return content;\n}\n/**\n * Implements an