{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/lit-html/lib/dom.js","../../node_modules/lit-html/lib/template.js","../../node_modules/lit-html/lib/modify-template.js","../../node_modules/lit-html/lib/directive.js","../../node_modules/lit-html/lib/part.js","../../node_modules/lit-html/lib/template-instance.js","../../node_modules/lit-html/lib/template-result.js","../../node_modules/lit-html/lib/parts.js","../../node_modules/lit-html/lib/template-factory.js","../../node_modules/lit-html/lib/render.js","../../node_modules/lit-html/lib/default-template-processor.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-html/lib/shady-render.js","../../node_modules/lit-element/lib/updating-element.js","../../node_modules/lit-element/lib/decorators.js","../../node_modules/lit-element/lib/css-tag.js","../../node_modules/lit-element/lit-element.js","../../node_modules/wired-lib/lib/wired-base.js","../../node_modules/wired-lib/node_modules/roughjs/bin/geometry.js","../../node_modules/wired-lib/node_modules/roughjs/bin/utils/hachure.js","../../node_modules/wired-lib/node_modules/roughjs/bin/fillers/filler-utils.js","../../node_modules/wired-lib/lib/wired-lib.js","../../node_modules/wired-button/lib/wired-button.js","../../node_modules/wired-card/lib/wired-card.js","../../node_modules/numeral/numeral.js","../../src/Credits.svelte","../../node_modules/svelte/store/index.mjs","../../src/store.js","../../src/utilities.js","../../src/StartPanel.svelte","../../src/Borough.svelte","../../node_modules/@turf/helpers/index.js","../../node_modules/topojson/node_modules/topojson-client/src/identity.js","../../node_modules/topojson/node_modules/topojson-client/src/feature.js","../../node_modules/topojson/node_modules/topojson-client/src/transform.js","../../node_modules/topojson/node_modules/topojson-client/src/reverse.js","../../node_modules/topojson-client/src/identity.js","../../node_modules/topojson-client/src/feature.js","../../node_modules/topojson-client/src/transform.js","../../node_modules/topojson-client/src/reverse.js","../../node_modules/topojson-client/src/stitch.js","../../node_modules/topojson-client/src/mesh.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_nativeCreate.js","../../node_modules/lodash-es/_hashGet.js","../../node_modules/lodash-es/_hashHas.js","../../node_modules/lodash-es/_Hash.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_assocIndexOf.js","../../node_modules/lodash-es/_hashClear.js","../../node_modules/lodash-es/_hashDelete.js","../../node_modules/lodash-es/_hashSet.js","../../node_modules/lodash-es/_listCacheDelete.js","../../node_modules/lodash-es/_ListCache.js","../../node_modules/lodash-es/_listCacheClear.js","../../node_modules/lodash-es/_listCacheGet.js","../../node_modules/lodash-es/_listCacheHas.js","../../node_modules/lodash-es/_listCacheSet.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_getMapData.js","../../node_modules/lodash-es/_isKeyable.js","../../node_modules/lodash-es/_MapCache.js","../../node_modules/lodash-es/_mapCacheClear.js","../../node_modules/lodash-es/_mapCacheDelete.js","../../node_modules/lodash-es/_mapCacheGet.js","../../node_modules/lodash-es/_mapCacheHas.js","../../node_modules/lodash-es/_mapCacheSet.js","../../node_modules/lodash-es/_SetCache.js","../../node_modules/lodash-es/_baseIsNaN.js","../../node_modules/lodash-es/_arrayIncludes.js","../../node_modules/lodash-es/_baseIndexOf.js","../../node_modules/lodash-es/_strictIndexOf.js","../../node_modules/lodash-es/_baseFindIndex.js","../../node_modules/lodash-es/_arrayIncludesWith.js","../../node_modules/lodash-es/_cacheHas.js","../../node_modules/lodash-es/_setCacheAdd.js","../../node_modules/lodash-es/_setCacheHas.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_setToArray.js","../../node_modules/lodash-es/_createSet.js","../../node_modules/lodash-es/noop.js","../../node_modules/lodash-es/_castSlice.js","../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/_hasUnicode.js","../../node_modules/lodash-es/_unicodeToArray.js","../../node_modules/lodash-es/_stringToArray.js","../../node_modules/lodash-es/_asciiToArray.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_baseToString.js","../../node_modules/lodash-es/_arrayMap.js","../../node_modules/lodash-es/toString.js","../../node_modules/lodash-es/upperFirst.js","../../node_modules/lodash-es/_createCaseFirst.js","../../node_modules/lodash-es/_Stack.js","../../node_modules/lodash-es/_stackClear.js","../../node_modules/lodash-es/_stackDelete.js","../../node_modules/lodash-es/_stackGet.js","../../node_modules/lodash-es/_stackHas.js","../../node_modules/lodash-es/_stackSet.js","../../node_modules/lodash-es/_defineProperty.js","../../node_modules/lodash-es/_baseAssignValue.js","../../node_modules/lodash-es/_assignValue.js","../../node_modules/lodash-es/_copyObject.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/keys.js","../../node_modules/lodash-es/_baseKeysIn.js","../../node_modules/lodash-es/_nativeKeysIn.js","../../node_modules/lodash-es/keysIn.js","../../node_modules/lodash-es/_cloneBuffer.js","../../node_modules/lodash-es/stubArray.js","../../node_modules/lodash-es/_getSymbols.js","../../node_modules/lodash-es/_arrayFilter.js","../../node_modules/lodash-es/_arrayPush.js","../../node_modules/lodash-es/_getPrototype.js","../../node_modules/lodash-es/_getSymbolsIn.js","../../node_modules/lodash-es/_baseGetAllKeys.js","../../node_modules/lodash-es/_getAllKeys.js","../../node_modules/lodash-es/_getAllKeysIn.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/_initCloneArray.js","../../node_modules/lodash-es/_Uint8Array.js","../../node_modules/lodash-es/_cloneArrayBuffer.js","../../node_modules/lodash-es/_cloneRegExp.js","../../node_modules/lodash-es/_cloneSymbol.js","../../node_modules/lodash-es/_initCloneByTag.js","../../node_modules/lodash-es/_cloneDataView.js","../../node_modules/lodash-es/_cloneTypedArray.js","../../node_modules/lodash-es/_baseCreate.js","../../node_modules/lodash-es/isMap.js","../../node_modules/lodash-es/_baseIsMap.js","../../node_modules/lodash-es/isSet.js","../../node_modules/lodash-es/_baseIsSet.js","../../node_modules/lodash-es/_baseClone.js","../../node_modules/lodash-es/_copyArray.js","../../node_modules/lodash-es/_initCloneObject.js","../../node_modules/lodash-es/_copySymbolsIn.js","../../node_modules/lodash-es/_baseAssignIn.js","../../node_modules/lodash-es/_copySymbols.js","../../node_modules/lodash-es/_baseAssign.js","../../node_modules/lodash-es/_arrayEach.js","../../node_modules/lodash-es/_arraySome.js","../../node_modules/lodash-es/_equalArrays.js","../../node_modules/lodash-es/_mapToArray.js","../../node_modules/lodash-es/_equalByTag.js","../../node_modules/lodash-es/_equalObjects.js","../../node_modules/lodash-es/_baseIsEqualDeep.js","../../node_modules/lodash-es/_baseIsEqual.js","../../node_modules/lodash-es/_isStrictComparable.js","../../node_modules/lodash-es/_matchesStrictComparable.js","../../node_modules/lodash-es/_baseMatches.js","../../node_modules/lodash-es/_getMatchData.js","../../node_modules/lodash-es/_baseIsMatch.js","../../node_modules/lodash-es/_isKey.js","../../node_modules/lodash-es/memoize.js","../../node_modules/lodash-es/_stringToPath.js","../../node_modules/lodash-es/_memoizeCapped.js","../../node_modules/lodash-es/_castPath.js","../../node_modules/lodash-es/_toKey.js","../../node_modules/lodash-es/_baseGet.js","../../node_modules/lodash-es/_baseHasIn.js","../../node_modules/lodash-es/hasIn.js","../../node_modules/lodash-es/_hasPath.js","../../node_modules/lodash-es/_baseMatchesProperty.js","../../node_modules/lodash-es/get.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/property.js","../../node_modules/lodash-es/_baseProperty.js","../../node_modules/lodash-es/_basePropertyDeep.js","../../node_modules/lodash-es/iteratee.js","../../node_modules/lodash-es/_baseIteratee.js","../../node_modules/d3-scale-chromatic/src/colors.js","../../node_modules/d3-scale-chromatic/src/categorical/category10.js","../../node_modules/d3-scale-chromatic/src/categorical/Accent.js","../../node_modules/d3-scale-chromatic/src/categorical/Dark2.js","../../node_modules/d3-scale-chromatic/src/categorical/Paired.js","../../node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","../../node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","../../node_modules/d3-scale-chromatic/src/categorical/Set1.js","../../node_modules/d3-scale-chromatic/src/categorical/Set2.js","../../node_modules/d3-scale-chromatic/src/categorical/Set3.js","../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-color/src/math.js","../../node_modules/d3-color/src/lab.js","../../node_modules/d3-color/src/cubehelix.js","../../node_modules/d3-interpolate/src/basis.js","../../node_modules/d3-interpolate/src/basisClosed.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-interpolate/src/transform/decompose.js","../../node_modules/d3-interpolate/src/transform/parse.js","../../node_modules/d3-interpolate/src/transform/index.js","../../node_modules/d3-interpolate/src/zoom.js","../../node_modules/d3-interpolate/src/hsl.js","../../node_modules/d3-interpolate/src/hcl.js","../../node_modules/d3-interpolate/src/cubehelix.js","../../node_modules/d3-interpolate/src/piecewise.js","../../node_modules/d3-interpolate/src/discrete.js","../../node_modules/d3-interpolate/src/hue.js","../../node_modules/d3-interpolate/src/lab.js","../../node_modules/d3-interpolate/src/quantize.js","../../node_modules/d3-scale-chromatic/src/ramp.js","../../node_modules/d3-scale-chromatic/src/diverging/BrBG.js","../../node_modules/d3-scale-chromatic/src/diverging/PRGn.js","../../node_modules/d3-scale-chromatic/src/diverging/PiYG.js","../../node_modules/d3-scale-chromatic/src/diverging/PuOr.js","../../node_modules/d3-scale-chromatic/src/diverging/RdBu.js","../../node_modules/d3-scale-chromatic/src/diverging/RdGy.js","../../node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","../../node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","../../node_modules/d3-scale-chromatic/src/diverging/Spectral.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","../../node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","../../node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/d3-array/src/extent.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-array/src/quickselect.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-array/src/quantile.js","../../node_modules/d3-array/src/maxIndex.js","../../node_modules/d3-array/src/median.js","../../node_modules/d3-array/src/sum.js","../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-scale/src/band.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-scale/src/identity.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/log.js","../../node_modules/d3-scale/src/symlog.js","../../node_modules/d3-scale/src/pow.js","../../node_modules/d3-scale/src/radial.js","../../node_modules/d3-scale/src/quantile.js","../../node_modules/d3-scale/src/quantize.js","../../node_modules/d3-scale/src/threshold.js","../../node_modules/d3-time/src/interval.js","../../node_modules/d3-time/src/millisecond.js","../../node_modules/d3-time/src/duration.js","../../node_modules/d3-time/src/second.js","../../node_modules/d3-time/src/minute.js","../../node_modules/d3-time/src/hour.js","../../node_modules/d3-time/src/day.js","../../node_modules/d3-time/src/week.js","../../node_modules/d3-time/src/month.js","../../node_modules/d3-time/src/year.js","../../node_modules/d3-time/src/utcMinute.js","../../node_modules/d3-time/src/utcHour.js","../../node_modules/d3-time/src/utcDay.js","../../node_modules/d3-time/src/utcWeek.js","../../node_modules/d3-time/src/utcMonth.js","../../node_modules/d3-time/src/utcYear.js","../../node_modules/d3-time-format/src/locale.js","../../node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/d3-scale/src/time.js","../../node_modules/d3-scale/src/utcTime.js","../../node_modules/d3-scale/src/sequential.js","../../node_modules/d3-scale/src/diverging.js","../../node_modules/d3-scale/src/sequentialQuantile.js","../../src/scale.js","../../node_modules/lodash-es/uniq.js","../../node_modules/lodash-es/_baseUniq.js","../../node_modules/simple-statistics/dist/simple-statistics.min.js","../../src/consts.js","../../src/Hexmap.svelte","../../src/Intro.svelte","../../node_modules/vega-transforms/src/util/AggregateKeys.js","../../node_modules/vega-util/src/accessor.js","../../node_modules/vega-util/src/getter.js","../../node_modules/vega-util/src/error.js","../../node_modules/vega-util/src/splitAccessPath.js","../../node_modules/vega-util/src/field.js","../../node_modules/vega-util/src/accessors.js","../../node_modules/vega-util/src/logger.js","../../node_modules/vega-util/src/isArray.js","../../node_modules/vega-util/src/isObject.js","../../node_modules/vega-util/src/mergeConfig.js","../../node_modules/vega-util/src/peek.js","../../node_modules/vega-util/src/toNumber.js","../../node_modules/vega-util/src/transform.js","../../node_modules/vega-util/src/array.js","../../node_modules/vega-util/src/isFunction.js","../../node_modules/vega-util/src/compare.js","../../node_modules/vega-util/src/constant.js","../../node_modules/vega-util/src/debounce.js","../../node_modules/vega-util/src/extend.js","../../node_modules/vega-util/src/extent.js","../../node_modules/vega-util/src/hasOwnProperty.js","../../node_modules/vega-util/src/fastmap.js","../../node_modules/vega-util/src/inherits.js","../../node_modules/vega-util/src/inrange.js","../../node_modules/vega-util/src/isDate.js","../../node_modules/vega-util/src/isNumber.js","../../node_modules/vega-util/src/isString.js","../../node_modules/vega-util/src/key.js","../../node_modules/vega-util/src/repeat.js","../../node_modules/vega-util/src/span.js","../../node_modules/vega-util/src/stringValue.js","../../node_modules/vega-util/src/toBoolean.js","../../node_modules/vega-util/src/toDate.js","../../node_modules/vega-util/src/toString.js","../../node_modules/vega-util/src/toSet.js","../../node_modules/vega-util/src/visitArray.js","../../node_modules/vega-transforms/src/util/AggregateOps.js","../../node_modules/vega-dataflow/src/util/UniqueList.js","../../node_modules/vega-dataflow/src/util/asyncCallback.js","../../node_modules/vega-dataflow/src/Tuple.js","../../node_modules/vega-dataflow/src/ChangeSet.js","../../node_modules/vega-dataflow/src/Parameters.js","../../node_modules/vega-dataflow/src/Operator.js","../../node_modules/vega-dataflow/src/EventStream.js","../../node_modules/vega-loader/src/loader.js","../../node_modules/vega-loader/src/type.js","../../node_modules/d3-dsv/src/dsv.js","../../node_modules/vega-loader/src/formats/dsv.js","../../node_modules/vega-loader/src/formats/json.js","../../node_modules/vega-loader/src/formats/topojson.js","../../node_modules/vega-loader/src/formats/index.js","../../node_modules/vega-format/src/memoize.js","../../node_modules/vega-format/src/number.js","../../node_modules/vega-time/src/units.js","../../node_modules/vega-time/src/util.js","../../node_modules/vega-time/src/floor.js","../../node_modules/vega-time/src/interval.js","../../node_modules/vega-time/src/bin.js","../../node_modules/vega-format/src/time.js","../../node_modules/vega-format/src/locale.js","../../node_modules/vega-loader/src/read.js","../../node_modules/vega-loader/index.browser.js","../../node_modules/vega-dataflow/src/dataflow/on.js","../../node_modules/vega-dataflow/src/Pulse.js","../../node_modules/vega-dataflow/src/MultiPulse.js","../../node_modules/vega-dataflow/src/dataflow/run.js","../../node_modules/vega-dataflow/src/dataflow/update.js","../../node_modules/vega-dataflow/src/util/Heap.js","../../node_modules/vega-dataflow/src/dataflow/Dataflow.js","../../node_modules/vega-dataflow/src/Transform.js","../../node_modules/vega-dataflow/src/dataflow/add.js","../../node_modules/vega-dataflow/src/dataflow/connect.js","../../node_modules/vega-dataflow/src/dataflow/rank.js","../../node_modules/vega-dataflow/src/dataflow/load.js","../../node_modules/vega-dataflow/src/dataflow/events.js","../../node_modules/vega-dataflow/src/register.js","../../node_modules/vega-statistics/src/numbers.js","../../node_modules/vega-statistics/src/quantiles.js","../../node_modules/vega-statistics/src/quartiles.js","../../node_modules/vega-statistics/src/bandwidth.js","../../node_modules/d3-array/src/deviation.js","../../node_modules/d3-array/src/variance.js","../../node_modules/vega-statistics/src/random.js","../../node_modules/vega-statistics/src/dotbin.js","../../node_modules/vega-statistics/src/constants.js","../../node_modules/vega-statistics/src/normal.js","../../node_modules/vega-statistics/src/kde.js","../../node_modules/vega-statistics/src/lognormal.js","../../node_modules/vega-statistics/src/uniform.js","../../node_modules/vega-statistics/src/regression/ols.js","../../node_modules/vega-statistics/src/regression/points.js","../../node_modules/vega-statistics/src/regression/r-squared.js","../../node_modules/vega-statistics/src/regression/linear.js","../../node_modules/vega-statistics/src/regression/quad.js","../../node_modules/vega-statistics/src/regression/poly.js","../../node_modules/vega-statistics/src/regression/loess.js","../../node_modules/vega-statistics/src/sampleCurve.js","../../node_modules/vega-transforms/src/util/TupleStore.js","../../node_modules/vega-transforms/src/Aggregate.js","../../node_modules/vega-util/src/extentIndex.js","../../node_modules/vega-statistics/src/bootstrapCI.js","../../node_modules/vega-transforms/src/Bin.js","../../node_modules/vega-transforms/src/util/SortedList.js","../../node_modules/vega-util/src/merge.js","../../node_modules/vega-transforms/src/Collect.js","../../node_modules/vega-transforms/src/Compare.js","../../node_modules/vega-transforms/src/CountPattern.js","../../node_modules/vega-statistics/src/bin.js","../../node_modules/vega-transforms/src/Cross.js","../../node_modules/vega-transforms/src/util/Distributions.js","../../node_modules/vega-statistics/src/mixture.js","../../node_modules/vega-transforms/src/Density.js","../../node_modules/vega-transforms/src/util/util.js","../../node_modules/vega-transforms/src/DotBin.js","../../node_modules/vega-transforms/src/Expression.js","../../node_modules/vega-transforms/src/Extent.js","../../node_modules/vega-transforms/src/Subflow.js","../../node_modules/vega-transforms/src/Facet.js","../../node_modules/vega-transforms/src/Field.js","../../node_modules/vega-transforms/src/Filter.js","../../node_modules/vega-transforms/src/Flatten.js","../../node_modules/vega-transforms/src/Fold.js","../../node_modules/vega-transforms/src/Formula.js","../../node_modules/vega-transforms/src/Generate.js","../../node_modules/vega-transforms/src/Impute.js","../../node_modules/d3-array/src/mean.js","../../node_modules/vega-transforms/src/JoinAggregate.js","../../node_modules/vega-transforms/src/KDE.js","../../node_modules/vega-transforms/src/Key.js","../../node_modules/vega-transforms/src/Load.js","../../node_modules/vega-transforms/src/Lookup.js","../../node_modules/vega-transforms/src/MultiExtent.js","../../node_modules/vega-transforms/src/MultiValues.js","../../node_modules/vega-transforms/src/Params.js","../../node_modules/vega-transforms/src/Pivot.js","../../node_modules/vega-transforms/src/PreFacet.js","../../node_modules/vega-transforms/src/Project.js","../../node_modules/vega-transforms/src/Proxy.js","../../node_modules/vega-transforms/src/Quantile.js","../../node_modules/vega-transforms/src/Relay.js","../../node_modules/vega-transforms/src/Sample.js","../../node_modules/vega-transforms/src/Sequence.js","../../node_modules/vega-transforms/src/Sieve.js","../../node_modules/vega-transforms/src/TimeUnit.js","../../node_modules/vega-transforms/src/TupleIndex.js","../../node_modules/vega-transforms/src/Values.js","../../node_modules/vega-transforms/src/util/WindowOps.js","../../node_modules/vega-transforms/src/util/WindowState.js","../../node_modules/vega-transforms/src/Window.js","../../node_modules/vega-view-transforms/src/constants.js","../../node_modules/vega-scenegraph/src/Gradient.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/arc.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/area.js","../../node_modules/d3-shape/src/symbol/circle.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/bundle.js","../../node_modules/d3-shape/src/curve/cardinal.js","../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../node_modules/d3-shape/src/curve/catmullRom.js","../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/vega-scenegraph/src/path/curves.js","../../node_modules/vega-scenegraph/src/path/parse.js","../../node_modules/vega-scenegraph/src/util/constants.js","../../node_modules/vega-scenegraph/src/path/arc.js","../../node_modules/vega-scenegraph/src/path/render.js","../../node_modules/vega-scenegraph/src/path/symbols.js","../../node_modules/vega-scenegraph/src/path/rectangle.js","../../node_modules/vega-scenegraph/src/path/shapes.js","../../node_modules/d3-shape/src/symbol.js","../../node_modules/vega-scenegraph/src/path/trail.js","../../node_modules/vega-scenegraph/src/util/svg/clip.js","../../node_modules/vega-scenegraph/src/Bounds.js","../../node_modules/vega-scenegraph/src/Item.js","../../node_modules/vega-scenegraph/src/GroupItem.js","../../node_modules/vega-canvas/src/domCanvas.js","../../node_modules/vega-scenegraph/src/ResourceLoader.js","../../node_modules/vega-scenegraph/src/bound/boundStroke.js","../../node_modules/vega-scenegraph/src/bound/boundContext.js","../../node_modules/vega-scenegraph/src/util/canvas/context.js","../../node_modules/vega-scenegraph/src/util/intersect.js","../../node_modules/vega-scenegraph/src/util/canvas/blend.js","../../node_modules/vega-scenegraph/src/util/canvas/gradient.js","../../node_modules/vega-scenegraph/src/util/canvas/color.js","../../node_modules/vega-scenegraph/src/util/canvas/fill.js","../../node_modules/vega-scenegraph/src/util/canvas/stroke.js","../../node_modules/vega-scenegraph/src/util/visit.js","../../node_modules/vega-scenegraph/src/util/canvas/draw.js","../../node_modules/vega-scenegraph/src/util/canvas/pick.js","../../node_modules/vega-scenegraph/src/util/svg/transform.js","../../node_modules/vega-scenegraph/src/marks/markItemPath.js","../../node_modules/vega-scenegraph/src/marks/arc.js","../../node_modules/vega-scenegraph/src/marks/markMultiItemPath.js","../../node_modules/vega-scenegraph/src/marks/area.js","../../node_modules/vega-scenegraph/src/util/pickPath.js","../../node_modules/vega-scenegraph/src/util/canvas/clip.js","../../node_modules/vega-scenegraph/src/marks/group.js","../../node_modules/vega-scenegraph/src/marks/image.js","../../node_modules/vega-scenegraph/src/marks/line.js","../../node_modules/vega-scenegraph/src/marks/path.js","../../node_modules/vega-scenegraph/src/marks/rect.js","../../node_modules/vega-scenegraph/src/marks/rule.js","../../node_modules/vega-scenegraph/src/marks/shape.js","../../node_modules/vega-scenegraph/src/marks/symbol.js","../../node_modules/vega-scenegraph/src/util/text.js","../../node_modules/vega-util/src/lruCache.js","../../node_modules/vega-scenegraph/src/marks/text.js","../../node_modules/vega-scenegraph/src/marks/index.js","../../node_modules/vega-scenegraph/src/marks/trail.js","../../node_modules/vega-scenegraph/src/bound/boundItem.js","../../node_modules/vega-scenegraph/src/bound/boundMark.js","../../node_modules/vega-scenegraph/src/util/serialize.js","../../node_modules/vega-scenegraph/src/Scenegraph.js","../../node_modules/vega-scenegraph/src/util/dom.js","../../node_modules/vega-scenegraph/src/util/point.js","../../node_modules/vega-scenegraph/src/Handler.js","../../node_modules/vega-scenegraph/src/Renderer.js","../../node_modules/vega-scenegraph/src/util/resolveItem.js","../../node_modules/vega-scenegraph/src/CanvasHandler.js","../../node_modules/vega-scenegraph/src/util/events.js","../../node_modules/vega-scenegraph/src/util/canvas/resize.js","../../node_modules/vega-scenegraph/src/CanvasRenderer.js","../../node_modules/vega-scenegraph/src/SVGHandler.js","../../node_modules/vega-scale/src/scales/bandSpace.js","../../node_modules/vega-scale/src/scales/types.js","../../node_modules/vega-scale/src/scales/scaleBand.js","../../node_modules/vega-scale/src/scales/numbers.js","../../node_modules/vega-scale/src/scales/slice.js","../../node_modules/vega-scale/src/scales.js","../../node_modules/vega-scale/src/scales/invertRange.js","../../node_modules/vega-scale/src/scales/invertRangeExtent.js","../../node_modules/vega-scale/src/scales/scaleBinOrdinal.js","../../node_modules/vega-scale/src/interpolate.js","../../node_modules/vega-scale/src/schemes.js","../../node_modules/vega-scale/src/palettes.js","../../node_modules/vega-scale/src/ticks.js","../../node_modules/vega-scale/src/labels.js","../../node_modules/vega-scale/src/legend-types.js","../../node_modules/vega-scale/src/caption.js","../../node_modules/vega-scenegraph/src/util/aria.js","../../node_modules/vega-scenegraph/src/util/tags.js","../../node_modules/vega-scenegraph/src/util/svg/metadata.js","../../node_modules/vega-scenegraph/src/util/svg/styles.js","../../node_modules/vega-scenegraph/src/SVGRenderer.js","../../node_modules/vega-scenegraph/src/SVGStringRenderer.js","../../node_modules/vega-scenegraph/src/modules.js","../../node_modules/vega-scenegraph/src/intersect.js","../../node_modules/vega-scenegraph/src/bound/boundClip.js","../../node_modules/vega-view-transforms/src/Bound.js","../../node_modules/vega-view-transforms/src/Identifier.js","../../node_modules/vega-view-transforms/src/Mark.js","../../node_modules/vega-view-transforms/src/Overlap.js","../../node_modules/vega-view-transforms/src/Render.js","../../node_modules/vega-view-transforms/src/layout/util.js","../../node_modules/vega-view-transforms/src/layout/axis.js","../../node_modules/vega-view-transforms/src/layout/grid.js","../../node_modules/vega-view-transforms/src/layout/legend.js","../../node_modules/vega-view-transforms/src/ViewLayout.js","../../node_modules/vega-view-transforms/src/layout/title.js","../../node_modules/vega-encode/src/AxisTicks.js","../../node_modules/vega-encode/src/DataJoin.js","../../node_modules/vega-encode/src/Encode.js","../../node_modules/vega-encode/src/LegendEntries.js","../../node_modules/vega-encode/src/LinkPath.js","../../node_modules/vega-encode/src/Pie.js","../../node_modules/vega-encode/src/Scale.js","../../node_modules/vega-encode/src/SortItems.js","../../node_modules/vega-encode/src/Stack.js","../../node_modules/vega-geo/src/util/contours.js","../../node_modules/vega-geo/src/util/quantize.js","../../node_modules/vega-geo/src/Isocontour.js","../../node_modules/vega-geo/src/util/density2D.js","../../node_modules/vega-geo/src/KDE2D.js","../../node_modules/vega-geo/src/Contour.js","../../node_modules/vega-geo/src/GeoJSON.js","../../node_modules/d3-geo/src/adder.js","../../node_modules/vega-geo/src/constants.js","../../node_modules/d3-geo/src/math.js","../../node_modules/d3-geo/src/noop.js","../../node_modules/d3-geo/src/stream.js","../../node_modules/d3-geo/src/area.js","../../node_modules/d3-geo/src/cartesian.js","../../node_modules/d3-geo/src/bounds.js","../../node_modules/d3-geo/src/centroid.js","../../node_modules/d3-geo/src/compose.js","../../node_modules/d3-geo/src/rotation.js","../../node_modules/d3-geo/src/circle.js","../../node_modules/d3-geo/src/clip/buffer.js","../../node_modules/d3-geo/src/pointEqual.js","../../node_modules/d3-geo/src/clip/rejoin.js","../../node_modules/d3-geo/src/polygonContains.js","../../node_modules/d3-geo/node_modules/d3-array/src/ascending.js","../../node_modules/d3-geo/node_modules/d3-array/src/bisector.js","../../node_modules/d3-geo/node_modules/d3-array/src/bisect.js","../../node_modules/d3-geo/node_modules/d3-array/src/range.js","../../node_modules/d3-geo/node_modules/d3-array/src/merge.js","../../node_modules/d3-geo/src/clip/index.js","../../node_modules/d3-geo/src/clip/antimeridian.js","../../node_modules/d3-geo/src/clip/circle.js","../../node_modules/d3-geo/src/clip/rectangle.js","../../node_modules/d3-geo/src/clip/line.js","../../node_modules/d3-geo/src/graticule.js","../../node_modules/d3-geo/src/identity.js","../../node_modules/d3-geo/src/path/area.js","../../node_modules/d3-geo/src/path/bounds.js","../../node_modules/d3-geo/src/path/centroid.js","../../node_modules/d3-geo/src/path/context.js","../../node_modules/d3-geo/src/path/measure.js","../../node_modules/d3-geo/src/path/string.js","../../node_modules/d3-geo/src/path/index.js","../../node_modules/d3-geo/src/transform.js","../../node_modules/d3-geo/src/projection/fit.js","../../node_modules/d3-geo/src/projection/resample.js","../../node_modules/d3-geo/src/projection/index.js","../../node_modules/d3-geo/src/projection/conic.js","../../node_modules/d3-geo/src/projection/conicEqualArea.js","../../node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../../node_modules/d3-geo/src/projection/albers.js","../../node_modules/d3-geo/src/projection/azimuthal.js","../../node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../../node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../../node_modules/d3-geo/src/projection/mercator.js","../../node_modules/d3-geo/src/projection/conicConformal.js","../../node_modules/d3-geo/src/projection/equirectangular.js","../../node_modules/d3-geo/src/projection/conicEquidistant.js","../../node_modules/d3-geo/src/projection/equalEarth.js","../../node_modules/d3-geo/src/projection/gnomonic.js","../../node_modules/d3-geo/src/projection/naturalEarth1.js","../../node_modules/d3-geo/src/projection/orthographic.js","../../node_modules/d3-geo/src/projection/stereographic.js","../../node_modules/d3-geo/src/projection/transverseMercator.js","../../node_modules/d3-geo-projection/src/math.js","../../node_modules/d3-geo-projection/src/mollweide.js","../../node_modules/vega-projection/src/projections.js","../../node_modules/d3-geo/src/projection/albersUsa.js","../../node_modules/d3-geo/src/projection/identity.js","../../node_modules/vega-geo/src/GeoPath.js","../../node_modules/vega-geo/src/GeoPoint.js","../../node_modules/vega-geo/src/GeoShape.js","../../node_modules/vega-geo/src/Graticule.js","../../node_modules/vega-geo/src/Heatmap.js","../../node_modules/vega-geo/src/Projection.js","../../node_modules/d3-quadtree/src/add.js","../../node_modules/d3-quadtree/src/quad.js","../../node_modules/d3-quadtree/src/x.js","../../node_modules/d3-quadtree/src/y.js","../../node_modules/d3-quadtree/src/quadtree.js","../../node_modules/vega-force/node_modules/d3-force/src/constant.js","../../node_modules/vega-force/node_modules/d3-force/src/jiggle.js","../../node_modules/vega-force/node_modules/d3-force/src/collide.js","../../node_modules/vega-force/node_modules/d3-force/src/link.js","../../node_modules/d3-quadtree/src/cover.js","../../node_modules/d3-quadtree/src/data.js","../../node_modules/d3-quadtree/src/extent.js","../../node_modules/d3-quadtree/src/find.js","../../node_modules/d3-quadtree/src/remove.js","../../node_modules/d3-quadtree/src/root.js","../../node_modules/d3-quadtree/src/size.js","../../node_modules/d3-quadtree/src/visit.js","../../node_modules/d3-quadtree/src/visitAfter.js","../../node_modules/d3-dispatch/src/dispatch.js","../../node_modules/d3-timer/src/timer.js","../../node_modules/d3-timer/src/timeout.js","../../node_modules/vega-force/node_modules/d3-force/src/simulation.js","../../node_modules/vega-force/src/Force.js","../../node_modules/vega-force/node_modules/d3-force/src/center.js","../../node_modules/vega-force/node_modules/d3-force/src/manyBody.js","../../node_modules/vega-force/node_modules/d3-force/src/x.js","../../node_modules/vega-force/node_modules/d3-force/src/y.js","../../node_modules/vega-hierarchy/src/lookup.js","../../node_modules/d3-hierarchy/src/cluster.js","../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../node_modules/d3-hierarchy/src/array.js","../../node_modules/d3-hierarchy/src/pack/enclose.js","../../node_modules/d3-hierarchy/src/pack/siblings.js","../../node_modules/d3-hierarchy/src/accessors.js","../../node_modules/d3-hierarchy/src/constant.js","../../node_modules/d3-hierarchy/src/pack/index.js","../../node_modules/d3-hierarchy/src/treemap/round.js","../../node_modules/d3-hierarchy/src/treemap/dice.js","../../node_modules/d3-hierarchy/src/stratify.js","../../node_modules/d3-hierarchy/src/tree.js","../../node_modules/d3-hierarchy/src/treemap/slice.js","../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../node_modules/d3-hierarchy/src/treemap/resquarify.js","../../node_modules/vega-hierarchy/src/Nest.js","../../node_modules/vega-hierarchy/src/HierarchyLayout.js","../../node_modules/vega-hierarchy/src/Pack.js","../../node_modules/vega-hierarchy/src/Partition.js","../../node_modules/vega-hierarchy/src/Stratify.js","../../node_modules/d3-hierarchy/src/partition.js","../../node_modules/vega-hierarchy/src/Tree.js","../../node_modules/vega-hierarchy/src/TreeLinks.js","../../node_modules/vega-hierarchy/src/Treemap.js","../../node_modules/d3-hierarchy/src/treemap/binary.js","../../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../../node_modules/d3-hierarchy/src/treemap/index.js","../../node_modules/vega-regression/src/partition.js","../../node_modules/vega-regression/src/Loess.js","../../node_modules/vega-regression/src/Regression.js","../../node_modules/vega-statistics/src/regression/log.js","../../node_modules/vega-statistics/src/regression/exp.js","../../node_modules/vega-statistics/src/regression/pow.js","../../node_modules/delaunator/index.js","../../node_modules/d3-delaunay/src/path.js","../../node_modules/d3-delaunay/src/polygon.js","../../node_modules/d3-delaunay/src/voronoi.js","../../node_modules/d3-delaunay/src/delaunay.js","../../node_modules/vega-voronoi/src/Voronoi.js","../../node_modules/vega-wordcloud/src/CloudLayout.js","../../node_modules/vega-wordcloud/src/Wordcloud.js","../../node_modules/vega-crossfilter/src/arrays.js","../../node_modules/vega-crossfilter/src/Bitmaps.js","../../node_modules/vega-crossfilter/src/Dimension.js","../../node_modules/vega-crossfilter/src/SortedIndex.js","../../node_modules/d3-array/src/permute.js","../../node_modules/vega-crossfilter/src/CrossFilter.js","../../node_modules/vega-crossfilter/src/ResolveFilter.js","../../node_modules/vega-view/src/aria.js","../../node_modules/vega-view/src/cursor.js","../../node_modules/vega-view/src/data.js","../../node_modules/vega-view/src/render-size.js","../../node_modules/vega-view/src/events-extend.js","../../node_modules/vega-view/src/events.js","../../node_modules/vega-view/src/hover.js","../../node_modules/vega-view/src/element.js","../../node_modules/vega-view/src/bind.js","../../node_modules/vega-view/src/initialize-renderer.js","../../node_modules/vega-view/src/trap.js","../../node_modules/vega-view/src/initialize.js","../../node_modules/vega-view/src/padding.js","../../node_modules/vega-view/src/render-headless.js","../../node_modules/vega-functions/src/functions/data.js","../../node_modules/vega-functions/src/functions/format.js","../../node_modules/vega-expression/src/ast.js","../../node_modules/vega-expression/src/parser.js","../../node_modules/vega-expression/src/constants.js","../../node_modules/vega-expression/src/functions.js","../../node_modules/vega-functions/src/visitors.js","../../node_modules/vega-functions/src/constants.js","../../node_modules/vega-functions/src/scales.js","../../node_modules/vega-functions/src/functions/geo.js","../../node_modules/vega-functions/src/functions/log.js","../../node_modules/vega-functions/src/functions/luminance.js","../../node_modules/vega-functions/src/functions/modify.js","../../node_modules/vega-functions/src/functions/tree.js","../../node_modules/vega-functions/src/functions/window.js","../../node_modules/vega-selections/src/selectionTest.js","../../node_modules/vega-selections/src/selectionResolve.js","../../node_modules/vega-selections/src/selectionVisitor.js","../../node_modules/vega-selections/src/constants.js","../../node_modules/vega-functions/src/codegen.js","../../node_modules/vega-util/src/isBoolean.js","../../node_modules/vega-util/src/isRegExp.js","../../node_modules/vega-util/src/flush.js","../../node_modules/vega-util/src/lerp.js","../../node_modules/vega-functions/src/functions/merge.js","../../node_modules/vega-util/src/pad.js","../../node_modules/vega-util/src/truncate.js","../../node_modules/vega-util/src/quarter.js","../../node_modules/vega-functions/src/functions/inscope.js","../../node_modules/vega-functions/src/functions/intersect.js","../../node_modules/vega-util/src/clampRange.js","../../node_modules/vega-functions/src/functions/pinch.js","../../node_modules/vega-functions/src/functions/scale.js","../../node_modules/vega-functions/src/functions/shape.js","../../node_modules/vega-functions/src/functions/encode.js","../../node_modules/vega-functions/src/functions/scale-gradient.js","../../node_modules/vega-expression/src/codegen.js","../../node_modules/vega-functions/src/parser.js","../../node_modules/vega-runtime/src/util.js","../../node_modules/vega-runtime/src/expression.js","../../node_modules/vega-runtime/src/parameters.js","../../node_modules/vega-runtime/src/state.js","../../node_modules/vega-runtime/src/context.js","../../node_modules/vega-view/src/runtime.js","../../node_modules/vega-runtime/src/dataflow.js","../../node_modules/vega-runtime/src/operator.js","../../node_modules/vega-runtime/src/stream.js","../../node_modules/vega-runtime/src/update.js","../../node_modules/vega-view/src/size.js","../../node_modules/vega-view/src/state.js","../../node_modules/vega-view/src/tooltip.js","../../node_modules/vega-view/src/View.js","../../node_modules/vega-view/src/background.js","../../node_modules/vega-parser/src/parsers/autosize.js","../../node_modules/vega-view/src/timer.js","../../node_modules/d3-timer/src/interval.js","../../node_modules/vega-view/src/finalize.js","../../node_modules/vega-view/src/scale.js","../../node_modules/vega-view/src/initialize-handler.js","../../node_modules/vega-view/src/render-to-image-url.js","../../node_modules/vega-view/src/render-to-canvas.js","../../node_modules/vega-view/src/render-to-svg.js","../../node_modules/vega-parser/src/parsers/padding.js","../../node_modules/vega-parser/src/parsers/encode/util.js","../../node_modules/vega-parser/src/parsers/encode/defaults.js","../../node_modules/vega-parser/src/parsers/encode/entry.js","../../node_modules/vega-parser/src/parsers/encode.js","../../node_modules/vega-parser/src/parsers/marks/roles.js","../../node_modules/vega-parser/src/parsers/encode/rule.js","../../node_modules/vega-parser/src/parsers/signal.js","../../node_modules/vega-parser/src/util.js","../../node_modules/vega-parser/src/parsers/stream.js","../../node_modules/vega-event-selector/src/event-selector.js","../../node_modules/vega-parser/src/parsers/update.js","../../node_modules/vega-parser/src/transforms.js","../../node_modules/vega-parser/src/parsers/scale.js","../../node_modules/vega-parser/src/parsers/projection.js","../../node_modules/vega-parser/src/parsers/guides/constants.js","../../node_modules/vega-parser/src/parsers/guides/guide-group.js","../../node_modules/vega-parser/src/parsers/marks/marktypes.js","../../node_modules/vega-parser/src/parsers/guides/guide-util.js","../../node_modules/vega-parser/src/parsers/guides/guide-mark.js","../../node_modules/vega-parser/src/parsers/guides/legend-gradient.js","../../node_modules/vega-parser/src/parsers/guides/legend-gradient-discrete.js","../../node_modules/vega-parser/src/parsers/guides/legend-gradient-labels.js","../../node_modules/vega-parser/src/parsers/guides/legend-symbol-groups.js","../../node_modules/vega-parser/src/parsers/guides/legend-title.js","../../node_modules/vega-parser/src/parsers/marks/clip.js","../../node_modules/vega-parser/src/parsers/marks/role.js","../../node_modules/vega-parser/src/parsers/marks/definition.js","../../node_modules/vega-parser/src/parsers/marks/interactive.js","../../node_modules/vega-parser/src/parsers/transform.js","../../node_modules/vega-parser/src/parsers/marks/data.js","../../node_modules/vega-parser/src/DataScope.js","../../node_modules/vega-parser/src/parsers/trigger.js","../../node_modules/vega-parser/src/parsers/mark.js","../../node_modules/vega-parser/src/parsers/marks/facet.js","../../node_modules/vega-parser/src/parsers/marks/subflow.js","../../node_modules/vega-parser/src/parsers/legend.js","../../node_modules/vega-parser/src/parsers/title.js","../../node_modules/vega-parser/src/parsers/data.js","../../node_modules/vega-parser/src/parsers/guides/axis-util.js","../../node_modules/vega-parser/src/parsers/guides/axis-config.js","../../node_modules/vega-parser/src/parsers/guides/axis-domain.js","../../node_modules/vega-parser/src/parsers/guides/axis-grid.js","../../node_modules/vega-parser/src/parsers/guides/axis-labels.js","../../node_modules/vega-parser/src/parsers/guides/axis-title.js","../../node_modules/vega-parser/src/parsers/axis.js","../../node_modules/vega-parser/src/parsers/guides/axis-ticks.js","../../node_modules/vega-parser/src/parsers/scope.js","../../node_modules/vega-parser/src/parsers/signal-updates.js","../../node_modules/vega-parser/src/parsers/view.js","../../node_modules/vega-parser/src/Scope.js","../../node_modules/vega-parser/src/parse.js","../../node_modules/vega-parser/src/config.js","../../node_modules/d3/node_modules/d3-array/src/ascending.js","../../node_modules/d3/node_modules/d3-array/src/bisector.js","../../node_modules/vega/index.js","../../node_modules/d3/node_modules/d3-array/src/bisect.js","../../node_modules/d3/node_modules/d3-array/src/extent.js","../../node_modules/d3/node_modules/d3-array/src/ticks.js","../../node_modules/d3/node_modules/d3-array/src/max.js","../../node_modules/d3-axis/src/array.js","../../node_modules/d3-axis/src/identity.js","../../node_modules/d3-axis/src/axis.js","../../node_modules/d3-selection/src/namespaces.js","../../node_modules/d3-selection/src/namespace.js","../../node_modules/d3-selection/src/creator.js","../../node_modules/d3-selection/src/selector.js","../../node_modules/d3-selection/src/selectorAll.js","../../node_modules/d3-selection/src/matcher.js","../../node_modules/d3-selection/src/selection/sparse.js","../../node_modules/d3-selection/src/selection/enter.js","../../node_modules/d3-selection/src/selection/data.js","../../node_modules/d3-selection/src/selection/sort.js","../../node_modules/d3-selection/src/selection/attr.js","../../node_modules/d3-selection/src/window.js","../../node_modules/d3-selection/src/selection/style.js","../../node_modules/d3-selection/src/selection/property.js","../../node_modules/d3-selection/src/selection/classed.js","../../node_modules/d3-selection/src/selection/text.js","../../node_modules/d3-selection/src/selection/html.js","../../node_modules/d3-selection/src/selection/raise.js","../../node_modules/d3-selection/src/selection/lower.js","../../node_modules/d3-selection/src/selection/insert.js","../../node_modules/d3-selection/src/selection/remove.js","../../node_modules/d3-selection/src/selection/clone.js","../../node_modules/d3-selection/src/selection/on.js","../../node_modules/d3-selection/src/selection/dispatch.js","../../node_modules/d3-selection/src/selection/index.js","../../node_modules/d3-selection/src/select.js","../../node_modules/d3-selection/src/selection/select.js","../../node_modules/d3-selection/src/selection/selectAll.js","../../node_modules/d3-selection/src/selection/filter.js","../../node_modules/d3-selection/src/constant.js","../../node_modules/d3-selection/src/selection/exit.js","../../node_modules/d3-selection/src/selection/join.js","../../node_modules/d3-selection/src/selection/merge.js","../../node_modules/d3-selection/src/selection/order.js","../../node_modules/d3-selection/src/selection/call.js","../../node_modules/d3-selection/src/selection/nodes.js","../../node_modules/d3-selection/src/selection/node.js","../../node_modules/d3-selection/src/selection/size.js","../../node_modules/d3-selection/src/selection/empty.js","../../node_modules/d3-selection/src/selection/each.js","../../node_modules/d3-selection/src/selection/append.js","../../node_modules/d3-selection/src/selection/datum.js","../../node_modules/d3-transition/src/transition/schedule.js","../../node_modules/d3-transition/src/transition/tween.js","../../node_modules/d3-transition/src/transition/interpolate.js","../../node_modules/d3-transition/src/transition/attr.js","../../node_modules/d3-transition/src/transition/attrTween.js","../../node_modules/d3-transition/src/transition/delay.js","../../node_modules/d3-transition/src/transition/duration.js","../../node_modules/d3-transition/src/transition/ease.js","../../node_modules/d3-transition/src/transition/on.js","../../node_modules/d3-transition/src/transition/selection.js","../../node_modules/d3-transition/src/transition/style.js","../../node_modules/d3-transition/src/transition/styleTween.js","../../node_modules/d3-transition/src/transition/textTween.js","../../node_modules/d3-transition/src/transition/index.js","../../node_modules/d3-transition/src/transition/select.js","../../node_modules/d3-transition/src/transition/selectAll.js","../../node_modules/d3-transition/src/transition/filter.js","../../node_modules/d3-transition/src/transition/merge.js","../../node_modules/d3-transition/src/transition/transition.js","../../node_modules/d3-transition/src/transition/text.js","../../node_modules/d3-transition/src/transition/remove.js","../../node_modules/d3-transition/src/transition/end.js","../../node_modules/d3-transition/src/selection/transition.js","../../node_modules/d3-ease/src/cubic.js","../../node_modules/d3-chord/node_modules/d3-array/src/ascending.js","../../node_modules/d3-transition/src/selection/index.js","../../node_modules/d3-transition/src/selection/interrupt.js","../../node_modules/d3-transition/src/interrupt.js","../../node_modules/d3-chord/node_modules/d3-array/src/bisector.js","../../node_modules/d3-chord/node_modules/d3-array/src/bisect.js","../../node_modules/d3-collection/src/map.js","../../node_modules/d3-collection/src/set.js","../../node_modules/d3-contour/node_modules/d3-array/src/ascending.js","../../node_modules/d3-contour/node_modules/d3-array/src/bisector.js","../../node_modules/d3-contour/node_modules/d3-array/src/bisect.js","../../node_modules/d3/node_modules/d3-scale/src/init.js","../../node_modules/d3/node_modules/d3-scale/src/array.js","../../node_modules/d3/node_modules/d3-scale/src/number.js","../../node_modules/d3/node_modules/d3-scale/src/continuous.js","../../node_modules/d3/node_modules/d3-scale/src/constant.js","../../node_modules/d3/node_modules/d3-scale/src/linear.js","../../node_modules/d3/node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3/node_modules/d3-scale/src/time.js","../../node_modules/d3/node_modules/d3-scale/src/nice.js","../../node_modules/d3/node_modules/d3-scale/src/utcTime.js","../../src/Line.svelte","../../src/Trend.svelte","../../src/App.svelte","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value' || descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group) {\n const value = [];\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.push(group[i].__value);\n }\n return value;\n}\nfunction to_number(value) {\n return value === '' ? undefined : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n let j = 0;\n while (j < node.attributes.length) {\n const attribute = node.attributes[j];\n if (attributes[attribute.name]) {\n j++;\n }\n else {\n node.removeAttribute(attribute.name);\n }\n }\n return nodes.splice(i, 1)[0];\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.data !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n if (value != null || input.value) {\n input.value = value;\n }\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n const z_index = (parseInt(computed_style.zIndex) || 0) - 1;\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', `display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ` +\n `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`);\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n let unsubscribe;\n if (is_crossorigin()) {\n iframe.src = `data:text/html,`;\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n detach(iframe);\n if (unsubscribe)\n unsubscribe();\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(html, anchor = null) {\n this.e = element('div');\n this.a = anchor;\n this.u(html);\n }\n m(target, anchor = null) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(target, this.n[i], anchor);\n }\n this.t = target;\n }\n u(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n p(html) {\n this.d();\n this.u(html);\n this.m(this.t, this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(`Function called outside component initialization`);\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next, lookup.has(block.key));\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error(`Cannot have duplicate keys in a keyed each`);\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += \" \" + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += \" \" + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : ``;\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if ($$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set() {\n // overridden by instance, if it has props\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.21.0' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev(\"SvelteDOMRemove\", { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? [\"capture\"] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev(\"SvelteDOMAddEventListener\", { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev(\"SvelteDOMRemoveEventListener\", { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev(\"SvelteDOMRemoveAttribute\", { node, attribute });\n else\n dispatch_dev(\"SvelteDOMSetAttribute\", { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev(\"SvelteDOMSetProperty\", { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev(\"SvelteDOMSetDataset\", { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.data === data)\n return;\n dispatch_dev(\"SvelteDOMSetData\", { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(`'target' is a required option`);\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn(`Component was already destroyed`); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error(`Infinite loop detected`);\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = typeof window !== 'undefined' &&\n window.customElements != null &&\n window.customElements.polyfillWrapFlushCallback !==\n undefined;\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.insertBefore(start, before);\n start = n;\n }\n};\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes = (container, start, end = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.removeChild(start);\n start = n;\n }\n};\n//# sourceMappingURL=dom.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = ``;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updatable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n constructor(result, element) {\n this.parts = [];\n this.element = element;\n const nodesToRemove = [];\n const stack = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(element.content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const { strings, values: { length } } = result;\n while (partIndex < length) {\n const node = walker.nextNode();\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n continue;\n }\n index++;\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if (node.hasAttributes()) {\n const attributes = node.attributes;\n const { length } = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)[2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n const attributeValue = node.getAttribute(attributeLookupName);\n node.removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({ type: 'attribute', index, name, strings: statics });\n partIndex += statics.length - 1;\n }\n }\n if (node.tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n }\n else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = node.data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n }\n else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({ type: 'node', index: ++index });\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n }\n else {\n node.data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n }\n else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if (node.data === marker) {\n const parent = node.parentNode;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({ type: 'node', index });\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n node.data = '';\n }\n else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n }\n else {\n let i = -1;\n while ((i = node.data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({ type: 'node', index: -1 });\n partIndex++;\n }\n }\n }\n }\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode.removeChild(n);\n }\n }\n}\nconst endsWith = (str, suffix) => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex = \n// eslint-disable-next-line no-control-regex\n/([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# sourceMappingURL=template.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module shady-render\n */\nimport { isTemplatePartActive } from './template.js';\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n * div#1 (remove) <-- start removing (removing node is div#1)\n * div\n * div#2 (remove) <-- continue removing (removing node is still div#1)\n * div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(template, nodesToRemove) {\n const { element: { content }, parts } = template;\n const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let part = parts[partIndex];\n let nodeIndex = -1;\n let removeCount = 0;\n const nodesToRemoveInTemplate = [];\n let currentRemovingNode = null;\n while (walker.nextNode()) {\n nodeIndex++;\n const node = walker.currentNode;\n // End removal if stepped past the removing node\n if (node.previousSibling === currentRemovingNode) {\n currentRemovingNode = null;\n }\n // A node to remove was found in the template\n if (nodesToRemove.has(node)) {\n nodesToRemoveInTemplate.push(node);\n // Track node we're removing\n if (currentRemovingNode === null) {\n currentRemovingNode = node;\n }\n }\n // When removing, increment count by which to adjust subsequent part indices\n if (currentRemovingNode !== null) {\n removeCount++;\n }\n while (part !== undefined && part.index === nodeIndex) {\n // If part is in a removed node deactivate it by setting index to -1 or\n // adjust the index as needed.\n part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n // go to the next active part.\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n part = parts[partIndex];\n }\n }\n nodesToRemoveInTemplate.forEach((n) => n.parentNode.removeChild(n));\n}\nconst countNodes = (node) => {\n let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n while (walker.nextNode()) {\n count++;\n }\n return count;\n};\nconst nextActiveIndexInTemplateParts = (parts, startIndex = -1) => {\n for (let i = startIndex + 1; i < parts.length; i++) {\n const part = parts[i];\n if (isTemplatePartActive(part)) {\n return i;\n }\n }\n return -1;\n};\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(template, node, refNode = null) {\n const { element: { content }, parts } = template;\n // If there's no refNode, then put node at end of template.\n // No part indices need to be shifted in this case.\n if (refNode === null || refNode === undefined) {\n content.appendChild(node);\n return;\n }\n const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let insertCount = 0;\n let walkerIndex = -1;\n while (walker.nextNode()) {\n walkerIndex++;\n const walkerNode = walker.currentNode;\n if (walkerNode === refNode) {\n insertCount = countNodes(node);\n refNode.parentNode.insertBefore(node, refNode);\n }\n while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n // If we've inserted the node, simply adjust all subsequent parts\n if (insertCount > 0) {\n while (partIndex !== -1) {\n parts[partIndex].index += insertCount;\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n return;\n }\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n }\n}\n//# sourceMappingURL=modify-template.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive factory function so that lit-html will call\n * the function during template rendering, rather than passing as a value.\n *\n * A _directive_ is a function that takes a Part as an argument. It has the\n * signature: `(part: Part) => void`.\n *\n * A directive _factory_ is a function that takes arguments for data and\n * configuration and returns a directive. Users of directive usually refer to\n * the directive factory as the directive. For example, \"The repeat directive\".\n *\n * Usually a template author will invoke a directive factory in their template\n * with relevant arguments, which will then return a directive function.\n *\n * Here's an example of using the `repeat()` directive factory that takes an\n * array and a function to render an item:\n *\n * ```js\n * html``\n * ```\n *\n * When `repeat` is invoked, it returns a directive function that closes over\n * `items` and the template function. When the outer template is rendered, the\n * return directive function is called with the Part for the expression.\n * `repeat` then performs it's custom logic to render multiple items.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object.\n *\n * @example\n *\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n * if (part.value !== v) {\n * part.setValue(v)\n * }\n * });\n */\nexport const directive = (f) => ((...args) => {\n const d = f(...args);\n directives.set(d, true);\n return d;\n});\nexport const isDirective = (o) => {\n return typeof o === 'function' && directives.has(o);\n};\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# sourceMappingURL=part.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n constructor(template, processor, options) {\n this.__parts = [];\n this.template = template;\n this.processor = processor;\n this.options = options;\n }\n update(values) {\n let i = 0;\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.setValue(values[i]);\n }\n i++;\n }\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.commit();\n }\n }\n }\n _clone() {\n // There are a number of steps in the lifecycle of a template instance's\n // DOM fragment:\n // 1. Clone - create the instance fragment\n // 2. Adopt - adopt into the main document\n // 3. Process - find part markers and create parts\n // 4. Upgrade - upgrade custom elements\n // 5. Update - set node, attribute, property, etc., values\n // 6. Connect - connect to the document. Optional and outside of this\n // method.\n //\n // We have a few constraints on the ordering of these steps:\n // * We need to upgrade before updating, so that property values will pass\n // through any property setters.\n // * We would like to process before upgrading so that we're sure that the\n // cloned fragment is inert and not disturbed by self-modifying DOM.\n // * We want custom elements to upgrade even in disconnected fragments.\n //\n // Given these constraints, with full custom elements support we would\n // prefer the order: Clone, Process, Adopt, Upgrade, Update, Connect\n //\n // But Safari does not implement CustomElementRegistry#upgrade, so we\n // can not implement that order and still have upgrade-before-update and\n // upgrade disconnected fragments. So we instead sacrifice the\n // process-before-upgrade constraint, since in Custom Elements v1 elements\n // must not modify their light DOM in the constructor. We still have issues\n // when co-existing with CEv0 elements like Polymer 1, and with polyfills\n // that don't strictly adhere to the no-modification rule because shadow\n // DOM, which may be created in the constructor, is emulated by being placed\n // in the light DOM.\n //\n // The resulting order is on native is: Clone, Adopt, Upgrade, Process,\n // Update, Connect. document.importNode() performs Clone, Adopt, and Upgrade\n // in one step.\n //\n // The Custom Elements v1 polyfill supports upgrade(), so the order when\n // polyfilled is the more ideal: Clone, Process, Adopt, Upgrade, Update,\n // Connect.\n const fragment = isCEPolyfill ?\n this.template.element.content.cloneNode(true) :\n document.importNode(this.template.element.content, true);\n const stack = [];\n const parts = this.template.parts;\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n let partIndex = 0;\n let nodeIndex = 0;\n let part;\n let node = walker.nextNode();\n // Loop through all the nodes and parts of a template\n while (partIndex < parts.length) {\n part = parts[partIndex];\n if (!isTemplatePartActive(part)) {\n this.__parts.push(undefined);\n partIndex++;\n continue;\n }\n // Progress the tree walker until we find our next part's node.\n // Note that multiple parts may share the same node (attribute parts\n // on a single element), so this loop may not run at all.\n while (nodeIndex < part.index) {\n nodeIndex++;\n if (node.nodeName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n if ((node = walker.nextNode()) === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n node = walker.nextNode();\n }\n }\n // We've arrived at our part's node.\n if (part.type === 'node') {\n const part = this.processor.handleTextExpression(this.options);\n part.insertAfterNode(node.previousSibling);\n this.__parts.push(part);\n }\n else {\n this.__parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n }\n partIndex++;\n }\n if (isCEPolyfill) {\n document.adoptNode(fragment);\n customElements.upgrade(fragment);\n }\n return fragment;\n }\n}\n//# sourceMappingURL=template-instance.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\nconst commentMarker = ` ${marker} `;\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n constructor(strings, values, type, processor) {\n this.strings = strings;\n this.values = values;\n this.type = type;\n this.processor = processor;\n }\n /**\n * Returns a string of HTML used to create a `