{"version":3,"sources":["../node_modules/i18next/dist/esm/i18next.js","../node_modules/guid-typescript/dist/guid.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/history/esm/history.js","../node_modules/html2canvas/dist/html2canvas.js","../node_modules/hammerjs/hammer.js","../node_modules/hyphenate-style-name/index.js","../node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/history/createBrowserHistory.js","../node_modules/ieee754/index.js","../node_modules/history/warnAboutDeprecatedCJSRequire.js","../node_modules/history/index.js","../node_modules/history/cjs/history.min.js","../node_modules/html-to-draftjs/dist/html-to-draftjs.js"],"names":["consoleLogger","type","args","this","output","console","apply","Logger","concreteLogger","options","arguments","length","undefined","init","prefix","logger","debug","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","listener","split","forEach","event","push","filter","l","concat","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","key","indexOf","replace","canNotTraverseDeeper","stack","shift","Object","prototype","hasOwnProperty","call","obj","k","setPath","newValue","getPath","getPathWithDefaults","data","defaultData","value","regexEscape","str","_entityMap","escape","s","chars","deepFind","keySeparator","paths","current","i","j","p","slice","join","mix","endsWith","joinedPath","getCleanedCode","code","ResourceStore","ns","defaultNS","super","ignoreJSONStructure","index","splice","lng","result","silent","addNamespaces","emit","resources","m","toString","addResource","deep","overwrite","pack","deepExtend","target","source","prop","String","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","keys","find","v","postProcessor","processors","module","name","translator","processor","process","checkedLoadedFor","Translator","services","a","t","copy","create","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","c","r","RegExp","map","matched","test","ki","substring","looksLikeObjectPath","match","interpolator","nestingRegexp","parts","lastKey","overloadTranslationOptionHandler","isArray","returnDetails","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","warn","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","defaultValue","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","log","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this","parse","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","handle","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","ordinalPrefix","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","string","charAt","toUpperCase","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","default","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","1","n","Number","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","includes","Intl","PluralRules","error","rules","set","numbers","plurals","createRules","rule","getRule","resolvedOptions","pluralCategories","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","JSON","e","formatters","doReduce","elem","reduce","createCachedFormatter","fn","cache","stringify","formatter","Formatter","formats","opt","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","mem","formatName","formatOptions","formatStr","optStr","rest","isNaN","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","err","addResourceBundle","q","pushPath","removePending","done","loadedKeys","fcName","tried","wait","resolver","next","read","setTimeout","bind","then","catch","queueLoad","loadOne","prepareLoading","fallbackValue","isUpdate","clb","opts","get","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","noop","I18n","inst","modules","external","getOwnPropertyNames","getPrototypeOf","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","on","languageDetector","detection","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","Error","addPostProcessor","li","lngInLngs","hasLanguageSomeTranslations","_this2","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","_this3","fixedT","resultKey","exists","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","forkResourceStore","mergedOptions","clone","instance","createInstance","dir","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","exports","__esModule","Guid","guid","TypeError","EMPTY","isGuid","validator","gen","createEmpty","raw","out","random","equals","isEmpty","toJSON","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","addLeadingSlash","stripLeadingSlash","substr","stripBasename","hasBasename","stripTrailingSlash","createPath","location","pathname","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","b","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","item","notifyListeners","canUseDOM","window","document","createElement","getConfirmation","message","confirm","getHistoryState","history","createBrowserHistory","props","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","extendStatics","d","setPrototypeOf","__proto__","__extends","__","constructor","__assign","assign","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","__generator","body","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","op","__spreadArray","to","from","ar","Bounds","left","top","width","height","add","x","w","h","fromClientRect","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","rect","parseBounds","node","getBoundingClientRect","toCodePoints$1","codePoints","charCodeAt","extra","fromCodePoint$1","_i","fromCodePoint","codeUnits","codePoint","fromCharCode","chars$2","lookup$2","Uint8Array","i$2","chars$1$1","lookup$1$1","i$1$1","slice16$1","view","start","end","Uint16Array","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","ix","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","chars$3","lookup$3","i$3","SP","BA","HY","CL","CP","EX","IN","NS","OP","IS","NU","PO","PR","SY","AL","EB","EM","H2","H3","ID","JL","JV","JT","SA","ea_OP","UnicodeTrie$1","base64","_byteLength","buffer","encoded1","encoded2","encoded3","encoded4","bufferLength","len","ArrayBuffer","bytes","decode$1","view32","polyUint32Array$1","Uint32Array","view16","polyUint16Array$1","headerLength","ceil","createTrieFromBase64$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","isAdjacentWithSpaceIgnored","currentIndex","classTypes","prev","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","cssFormattedClasses","lineBreak","wordBreak","_a","types","indices","categories","classType","codePointsToCharacterClasses","isLetterNumber","letterNumber","Break","required","isDigit","isHex","isWhiteSpace","isNameStartCodePoint","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","sign","integers","int","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","write","chunk","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","unshift","digits","questionMarks","digit","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","amount","endingCodePoint","consumeNumber","repr","unit","hex","hexCodePoint","isSurrogateCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","values","consumeSimpleBlock","consumeFunction","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","parent","angle","_context","PI","isAngle","parseNamedSide","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","TRANSPARENT","isTransparent","color","asString","alpha","blue","green","red","round","getTokenColorValue","rgb","_b","hue2rgb","t1","t2","hue","BACKGROUND_SIZE","hsl","saturation","lightness","hsla","rgba","parseColor","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","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","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","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","backgroundColor","parseColorStop","stop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","calculateGradientDirection","radian","corner","centerX","centerY","atan2","getAngleFromCorner","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","sqrt","findCorner","closest","stat","cx","cy","optimumDistance","optimumCorner","Infinity","prefixLinearGradient","angle$1","firstToken","colorStop","prefixRadialGradient","shape","size","position","isColorStop","acc","image","image_1","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isAtPosition_1","backgroundImage","isSupportedImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","direction","display","bit","parseDisplayValue","float","letterSpacing","WORD_BREAK","STRICT","NORMAL","lineHeight","computeLineHeight","fontSize","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflow","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textAlign","textShadow","shadow","offsetX","offsetY","blur","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","BREAK_ALL","KEEP_ALL","zIndex","auto","order","time","opacity","textDecorationColor","textDecorationLine","line","fontFamily","accumulator","results","fontWeight","fontVariant","fontStyle","contains","content","counterIncrement","increments","filtered","counter","increment","counterReset","resets","duration","quotes","open_1","close_1","open","close","getQuote","depth","quote","boxShadow","spread","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","transform","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","isDebugging","element","elementType","getElementDebugType","ElementContainer","textNodes","elements","styles","getComputedStyle","isHTMLElementNode","some","bounds","chars$1","lookup$1","i$1","slice16","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_INDEX_2_BLOCK_LENGTH","lookup","PseudoElementType","L","V","LV","LVT","UnicodeTrie","decode","polyUint32Array","polyUint16Array","createTrieFromBase64","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","toCodePoints","lastEnd","graphemeBreak","isGreenPixel","createForeignObjectSVG","xmlns","svg","createElementNS","foreignObject","setAttributeNS","appendChild","loadSerializedSVG$1","img","Image","onload","onerror","src","encodeURIComponent","XMLSerializer","serializeToString","FEATURES","createRange","testElement","TEST_HEIGHT","selectNode","rangeBounds","rangeHeight","removeChild","testRangeBounds","SUPPORT_RANGE_BOUNDS","wordSpacing","innerHTML","repeat","firstChild","textList","offset","supports","every","text","setStart","setEnd","boundAhead","testIOSLineBreak","canvas","ctx","getContext","drawImage","toDataURL","testSVG","fetch","fillStyle","fillRect","greenImageSrc","getImageData","testForeignObject","crossOrigin","XMLHttpRequest","responseType","Segmenter","TextBounds","getWrapperBounds","ownerDocument","wrapper","cloneNode","parentNode","replaceChild","segmentGraphemes","SUPPORT_NATIVE_TEXT_SEGMENTATION","segmenter","granularity","segment","bk","breaker","graphemes","splitGraphemes","breakText","breakWords","segmentWords","wordSeparators","forbiddenBreakpoints","LineBreaker","words","_loop_1","word_1","TextContainer","textBounds","clientRects","getClientRects","subSegments","subOffset_1","subSegment","replacementNode","splitText","parseTextBounds","CAPITALIZE","p1","p2","ImageElementContainer","_super","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","setAttribute","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","PASSWORD","InputElementContainer","input","checked","placeholder","getInputValue","SelectElementContainer","selectedIndex","TextareaElementContainer","IFrameElementContainer","iframe","contentWindow","documentElement","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","root","childNode","nextNode","nextSibling","isTextNode","isElementNode","isSlotElement","assignedNodes","container","createContainer","createsRealStackingContext","createsStackingContext","tagName","slot","shadowRoot","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","nodeType","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","className","isVideoElement","isStyleElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","floor","createCounterStyleFromSymbols","createCJKCounter","multipliers","negativeSign","tmp","coefficient","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","CJK_TEN_COEFFICIENTS","CJK_ZEROS","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","defaultView","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","scrollTo","clonedReferenceElement","nodeName","fonts","ready","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","loading","createCustomElementClone","copyCSSStyles","sheet","cssRules","css","cssText","textContent","inlineImages","info","clonedCanvas","clonedCtx","allowTaint","putImageData","gl","attribs","getContextAttributes","preserveDrawingBuffer","video","offsetWidth","offsetHeight","blankCanvas","appendChildNode","child","copyStyles","hasAttribute","ignoreElements","cloneChildNodes","assignedNode","createTextNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","insertBefore","after","AFTER","scrollTop","scrollLeft","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","destroy","CORNER","cloneIframeContainer","border","scrolling","imageReady","complete","all","images","interval","setInterval","childNodes","readyState","clearInterval","ignoredStyleProperties","property","setProperty","getPropertyValue","internalSubset","publicId","systemId","createStyles","CacheStorage","getOrigin","link","_link","protocol","hostname","port","isSameOrigin","_origin","setContext","Cache","_options","_cache","has","isBlobImage","isRenderable","loadImage","useCORS","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","proxy","SUPPORT_CORS_XHR","isInlineBase64Image","imageTimeout","SUPPORT_RESPONSE_TYPE","xhr","status","response","reader_1","FileReader","readAsDataURL","queryString","timeout_1","timeout","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","Vector","deltaX","deltaY","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","reverse","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isClipEffect","effect","equalPath","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parsePathForBorder","borderSide","createPathFromCurves","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","calculateBackgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","calculateBackgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","second","hasIntrinsicProportion","CONTAIN","COVER","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","FontMetrics","_data","_document","parseMetrics","span","margin","padding","whiteSpace","verticalAlign","baseline","offsetTop","middle","getMetrics","Renderer","CanvasRenderer","_activeEffects","scale","fontMetrics","textBaseline","applyEffects","popEffect","applyEffect","save","isOpacityEffect","globalAlpha","isTransformEffect","clip","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letter","measureText","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","font","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineWidth","lineJoin","chrome","strokeText","renderReplacedElement","box","fill","beginPath","arc","isTextInputElement","canvasTextAlign","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","mask","moveTo","lineTo","formatPath","closePath","point","bezierCurveTo","renderRepeat","pattern","resizeImage","renderBackgroundImage","this_1","x0","x1","y0","y1","gradient_1","top_1","rx","ry","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","background","isRadialGradient","gradient","calculateRadius","createRadialGradient","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","deltaW","deltaH","borderBoxArea","maskOffset","shadowPaintingArea","renderDashedDottedBorder","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","parsePathForBorderStroke","setLineDash","lineCap","stroke","parseStackingContexts","calculateContentBoxPath","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","id","enabled","Date","now","getTime","instances","Context","instanceName","instanceCount","logging","renderElement","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","_q","_r","_s","_t","_u","windowWidth","innerWidth","windowHeight","innerHeight","scrollWidth","clientWidth","scrollHeight","clientHeight","parseDocumentSize","parseBackgroundColor","devicePixelRatio","removeContainer","backgroundColorOverride","defaultBackgroundColor","factory","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","each","deprecate","method","deprecationMessage","nextKey","extend","merge","inherit","base","properties","childP","baseP","boolOrFn","ifUndefined","val1","val2","addEventListeners","handler","splitStr","removeEventListeners","hasParent","inStr","inArray","findByKey","toArray","uniqueArray","prefixed","camelProp","_uniqueId","getWindowForElement","doc","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","Input","manager","self","inputTarget","domHandler","ev","enable","inputHandler","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","getAngle","getDistance","offsetDelta","prevDelta","prevInput","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","recognize","clientX","clientY","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","getTouchActionProps","TouchAction","compute","actions","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","Recognizer","defaults","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","isValid","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","clearTimeout","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","createInputInstance","toggleCssProps","force","stopped","curRecognizer","existing","remove","off","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","uppercasePattern","msPattern","toHyphenLower","hName","voidElement","attrs","children","startsWith","comment","o","components","u","arr","fieldContentRegExp","serializeCookie","maxAge","domain","expires","toUTCString","httpOnly","secure","sameSite","cookie","minutes","cookieOptions","setTime","nameEQ","ca","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","params","pos","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","convertDetectedLanguage","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","member","_interopDefault","resolvePathname","valueEqual","invariant","_extends","T","H","O","E","S","inlines","OrderedSet","entities","blocks","M","Map","A","blockquote","atomic","unstyled","aliasedElements","del","em","strong","ins","sub","sup","HTMLAnchorElement","dataset","mention","Entity","__create","title","targetOption","I","mutability","HTMLImageElement","alt","alignment","HTMLVideoElement","HTMLIFrameElement","keySeq","toSet","toOrderedSet","HTMLElement","withMutations","implementation","createHTMLDocument","getElementsByTagName","OrderedMap","__get","contentBlocks","List","entity","CharacterMetadata","ContentBlock","genKey","characterList","entityMap","enumerable","toStringTag"],"mappings":"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EACNiO,MAAO,SAAUwyB,EAAUsO,GACvB,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,UACL,QACI,OAAO,KAKnBqD,GAAgB,CAChBnqC,KAAM,kBACNirB,aAAc,OACdryB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUwyB,EAAUzgC,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WAEL,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GAC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","file":"static/js/defaultVendors~main~73914085.054b4ed6.chunk.js","sourcesContent":["const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(l => l !== listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nconst chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = new RegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const defaultValue = options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n this.pluralResolver.getSuffixes(language, options).forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: resolved,\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: (value, format, lng, options) => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Guid = /** @class */ (function () {\r\n function Guid(guid) {\r\n if (!guid) {\r\n throw new TypeError(\"Invalid argument; `value` has no value.\");\r\n }\r\n this.value = Guid.EMPTY;\r\n if (guid && Guid.isGuid(guid)) {\r\n this.value = guid;\r\n }\r\n }\r\n Guid.isGuid = function (guid) {\r\n var value = guid.toString();\r\n return guid && (guid instanceof Guid || Guid.validator.test(value));\r\n };\r\n Guid.create = function () {\r\n return new Guid([Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\"));\r\n };\r\n Guid.createEmpty = function () {\r\n return new Guid(\"emptyguid\");\r\n };\r\n Guid.parse = function (guid) {\r\n return new Guid(guid);\r\n };\r\n Guid.raw = function () {\r\n return [Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\");\r\n };\r\n Guid.gen = function (count) {\r\n var out = \"\";\r\n for (var i = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n };\r\n Guid.prototype.equals = function (other) {\r\n // Comparing string `value` against provided `guid` will auto-call\r\n // toString on `guid` for comparison\r\n return Guid.isGuid(other) && this.value === other.toString();\r\n };\r\n Guid.prototype.isEmpty = function () {\r\n return this.value === Guid.EMPTY;\r\n };\r\n Guid.prototype.toString = function () {\r\n return this.value;\r\n };\r\n Guid.prototype.toJSON = function () {\r\n return {\r\n value: this.value\r\n };\r\n };\r\n Guid.validator = new RegExp(\"^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$\", \"i\");\r\n Guid.EMPTY = \"00000000-0000-0000-0000-000000000000\";\r\n return Guid;\r\n}());\r\nexports.Guid = Guid;\r\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","/*!\n * html2canvas 1.4.1 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마이너스';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline