{"version":3,"sources":["webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/canvg/lib/index.es.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/core-js/internals/error-stack-install.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/dom-iterables.js"],"names":["Queue","this","head","tail","prototype","add","item","entry","next","get","module","exports","uncurryThis","aCallable","NATIVE_BIND","bind","fn","that","undefined","apply","arguments","toObject","floor","Math","charAt","replace","stringSlice","slice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","length","m","symbols","match","ch","capture","n","f","offscreen","DOMParser","DOMParserFallback","preset","window","ignoreAnimation","ignoreMouse","width","height","OffscreenCanvas","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","node","_ref","canvas","createCanvas","createImage","loadImage","index","Object","freeze","__proto__","compressSpaces","trimLeft","trimRight","toNumbers","matches","map","parseFloat","allUppercase","normalizeAttributeName","name","test","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","normalizedColor","num","isFloat","String","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","document","value","isNormalizedColor","separator","getString","trim","split","zeroIsValue","regexp","result","isString","hasValue","asString","endsWith","def","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","min","computeSize","max","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","len","commas","i","ok","alpha","toRGBA","ViewPort","viewPorts","push","pop","getCurrent","d","Point","x","y","point","defaultValue","scale","path","points","pathPoints","atan2","transform","xp","yp","Mouse","working","events","eventElements","onClick","onMouseMove","onclick","onmousemove","style","cursor","forEach","run","parent","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","mapXY","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","Promise","resolve","every","_","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","getPixels","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","now","Date","then","tick","shouldUpdate","runEvents","start","cancel","stop","reduce","animation","update","hasEvents","clear","setCurrent","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","text","Translate","parse","applyTransform","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","Matrix","matrix","a","b","c","e","g","h","det","Skew","skew","super","SkewX","tan","SkewY","parseTransforms","parseTransform","Transform","transforms","data","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","unapply","applyToPoint","skewX","skewY","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","Array","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","empty","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","createElement","ignoreChildTypes","includes","_node$getAttribute","styleClasses","call","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","indexOf","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","process","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","set","part","variants","weights","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","p0","p1","p2","p3","forX","b2ac","t1","addX","sumCubic","addY","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","bezierCurveAdd","cp1x","cp1y","cp2x","cp2y","addBezierCurve","PathParser","control","current","command","commands","previousCommand","angles","xProp","yProp","makeAbsolute","getPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","priorTo","angleTo","addMarkerAngle","j","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","toString","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","setTransform","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","getAsCurrentPoint","addMarker","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","getTextBaseline","leafTexts","textChunkStart","POSITIVE_INFINITY","maxX","NEGATIVE_INFINITY","getTElementBoundingBox","initializeCoordinates","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","parentNode","lastIndex","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","getGlyph","lw","fillText","strokeText","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","applyAnchoring","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","isFirstChild","parentAttr","TSpanElement","getTextFromNode","TextNode","SVGElement","root","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","getContext","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","getMilliseconds","maxDuration","to","values","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","p","lb","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","keys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","target","source","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","getLetterSpacingAt","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","getPointOnLine","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","step","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","srcs","src","UseElement","tempSvg","oldParent","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","noop","ClipPathElement","contextProto","getPrototypeOf","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","removeChild","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","fails","global","$RegExp","RegExp","re","groups","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","isRegExp","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","getMethod","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","O","splitter","S","res","done","C","unicodeMatching","q","A","z","$","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","CHROME_BUG","FORCED","proto","forced","callbackfn","isCallable","classof","$TypeError","TypeError","R","newPromiseCapabilityModule","perform","iterate","PROMISE_STATICS_INCORRECT_ITERATION","stat","all","iterable","capability","$promiseResolve","counter","remaining","promise","alreadyCalled","getBuiltIn","wellKnownSymbol","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","tryToString","isArrayIteratorMethod","lengthOfArrayLike","isPrototypeOf","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","condition","callFn","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","PROPER_FUNCTION_NAME","PROPER","defineBuiltIn","$toString","getRegExpFlags","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","unsafe","defineBuiltInAccessor","DESCRIPTORS","SPECIES","CONSTRUCTOR_NAME","Constructor","configurable","isArray","nativeReverse","kind","innerResult","innerError","FunctionPrototype","Function","IS_PURE","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","search","$location","defer","channel","port","hasOwn","html","validateArgumentsLength","IS_IOS","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","location","runner","eventListener","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","race","Iterators","it","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","toIndexedObject","objectKeys","Properties","create","UNSCOPABLES","ArrayPrototype","isObject","MATCH","classofRaw","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","NativePromiseConstructor","isForced","inspectSource","IS_BROWSER","IS_DENO","V8_VERSION","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","constructor","CONSTRUCTOR","REJECTION_EVENT","aConstructor","defaultConstructor","$trim","forcedStringTrimMethod","toAbsoluteIndex","createProperty","$Array","k","fin","isConstructor","argument","toIntegerOrInfinity","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","nativeReplace","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","whitespaces","ltrim","rtrim","createMethod","TYPE","$this","color_string","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","example","bits","parseInt","processor","channels","toRGB","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","RGBColor","example_div","cssText","list_item_value","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setPrototypeOf","setToStringTag","setSpecies","anInstance","task","microtask","hostReportErrors","InternalStateModule","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","getterFor","setInternalState","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","state","exited","fail","domain","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","reason","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","_typeof","obj","Symbol","_classCallCheck","instance","mulTable","shgTable","getImageDataFromCanvas","topX","topY","getElementById","context","processCanvasRGBA","radius","imageData","processImageDataRGBA","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_p2","checkCorrectnessOfIteration","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","sham","Deno","version","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","createNonEnumerableProperty","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","dropEntries","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","documentCreateElement","classList","DOMTokenListPrototype","activeXDocument","definePropertiesModule","enumBugKeys","hiddenKeys","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","F","NullProtoObject","ActiveXObject","toPropertyKey","createPropertyDescriptor","propertyKey","nativeEndsWith","endPosition","regExpFlags","regexpFlags","shared","getInternalState","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","raw","charsAdded","strCopy","input","require","_defineProperty","__esModule","usingIterator","iteratorMethod","MISSED_STICKY","toPrimitive","_toPropertyKey","arg","METHOD_NAME","method","error1","error2","cause","hasIndices","dotAll","unicodeSets","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","Target","Source","toggle","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","flush","observe","characterData","vendors","suffix","raf","caf","last","callback","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","FunctionName","createIteratorConstructor","IteratorsCore","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","non","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","fromIndex","real","promiseCapability","hasOwnProperty","o","T","cX","cY","phi1","phi2","N","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxY","DRAWING_COMMANDS","w","U","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","SyntaxError","encode","getBounds","TAG","STATIC","Pebble","IndexedObject","IS_RIGHT","argumentsLength","memo","right","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","arity","exportWebAssemblyErrorCauseWrapper","init","message","ENUMERABLE_NEXT","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","$Object","ObjectPrototype","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","iterated","Arguments","_toPrimitive","hint","prim","copyConstructorProperties","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","PromiseCapability","$$resolve","$$reject","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAgEvgC,SAASC,EAAuBh8C,EAA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","file":"assets/js/chunk-71febc4e.b07787e2.js","sourcesContent":["var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height'];\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >> shgSum;\n pixels[yi + 1] = gSum * mulSum >> shgSum;\n pixels[yi + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n"],"sourceRoot":""}