{"version":3,"sources":["webpack:///./node_modules/axe-core/axe.js"],"names":["axeFunction","window","global","document","_typeof","obj","Symbol","iterator","constructor","prototype","SupportError","error","this","name","cause","message","concat","ruleId","stack","Error","axe","version","module","exports","toString","source","getComputedStyle","Object","create","r","e","n","t","o","i","f","u","a","code","p","call","length","1","_dereq_","polyfill","Uint32Array","imports","axios","CssSelectorParser","doT","emojiRegexText","memoize","memoizee","2","templateSettings","evaluate","interpolate","encode","use","useParams","define","defineParams","conditional","iterate","varname","strip","append","selfcontained","doNotSkipEncoded","template","undefined","compile","log","globalThis","defineProperty","get","configurable","__magic__","self","encodeHTMLSource","encodeHTMLRules","'","matchHTML","replace","m","startend","start","end","startencode","split","skip","unescape","tmpl","c","def","needhtmlencode","indv","cse","sid","str","resolveDefs","block","assign","value","indexOf","substring","param","v","arg","text","Function","s","d","rw","__exp","RegExp","elsecase","vname","iname","_encodeHTML","console","3","4","utils","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","auth","username","password","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","status","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","5","bind","Axios","mergeConfig","createInstance","defaultConfig","context","instance","extend","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","default","6","__CANCEL__","7","executor","TypeError","resolvePromise","token","reason","throwIfRequested","8","9","InterceptorManager","dispatchRequest","interceptors","arguments","chain","interceptor","unshift","fulfilled","rejected","push","shift","getUri","merge","10","handlers","eject","id","fn","h","11","isAbsoluteURL","combineURLs","requestedURL","12","enhanceError","13","transformData","throwIfCancellationRequested","transformRequest","common","adapter","transformResponse","14","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","15","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","isObject","deepMerge","axiosKeys","otherKeys","keys","filter","16","validateStatus","17","fns","18","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","JSON","stringify","parse","maxContentLength","Accept","_process","19","thisArg","args","Array","apply","20","encodeURIComponent","serializedParams","parts","isArray","isDate","toISOString","join","hashmarkIndex","slice","21","relativeURL","22","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","match","decodeURIComponent","remove","now","23","test","24","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","parsed","25","normalizedName","26","ignoreDuplicateOf","line","trim","substr","27","callback","arr","28","isFunction","l","hasOwnProperty","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","result","assignValue","b","29","30","31","32","33","parent","34","it","String","35","36","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","37","Constructor","38","39","DataView","40","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","has","classof","createNonEnumerableProperty","redefine","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","isTypedArray","aTypedArray","aTypedArrayConstructor","C","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","property","forced","exportTypedArrayStaticMethod","klass","41","redefineAll","fails","anInstance","toInteger","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","setToStringTag","InternalStateModule","getInternalState","setInternalState","set","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","index","isLittleEndian","intIndex","store","byteLength","bytes","byteOffset","reverse","conversion","NaN","ArrayBufferPrototype","j","testView","nativeSetInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","42","toObject","toAbsoluteIndex","min","Math","copyWithin","target","O","len","to","from","inc","43","argumentsLength","endPos","44","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","45","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","specificCreate","boundFunction","map","some","every","find","findIndex","46","arrayMethodIsStrict","arrayMethodUsesToLength","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","STRICT_METHOD","USES_TO_LENGTH","ACCESSORS","FORCED","searchElement","47","METHOD_NAME","argument","48","cache","thrower","options","argument0","argument1","enumerable","49","aFunction","IS_RIGHT","memo","left","right","50","SPECIES","originalArray","51","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","next","done","return","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","52","53","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","54","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyDescriptor","55","F","56","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","57","58","bitmap","writable","59","$","createIteratorConstructor","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","60","61","EXISTS","62","63","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","64","65","66","variable","namespace","67","68","check","69","70","71","getBuiltIn","72","73","abs","pow","floor","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","74","propertyIsEnumerable","75","dummy","Wrapper","NewTarget","NewTargetPrototype","76","functionToString","inspectSource","77","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","state","type","78","79","80","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","81","82","83","PrototypeOfArrayIteratorPrototype","arrayIterator","84","dup","85","getOwnPropertySymbols","86","87","activeXDocument","anObject","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","_NullProtoObject","ActiveXObject","iframeDocument","iframe","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","Properties","88","objectKeys","89","IE8_DOM_DEFINE","toPrimitive","nativeDefineProperty","P","Attributes","90","propertyIsEnumerableModule","nativeGetOwnPropertyDescriptor","91","internalObjectKeys","92","93","CORRECT_PROTOTYPE_GETTER","94","names","95","96","nativePropertyIsEnumerable","NASHORN_BUG","V","97","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","98","99","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","100","101","102","enforceInternalState","TEMPLATE","simple","103","104","105","CONSTRUCTOR_NAME","106","TAG","107","shared","108","109","mode","copyright","110","defaultConstructor","S","111","max","integer","112","113","requireObjectCoercible","114","ceil","isNaN","115","116","117","toPositiveInteger","BYTES","118","119","input","PREFERRED_STRING","valueOf","120","121","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","round","fromList","list","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","getter","typedArrayOffset","$length","$len","122","checkCorrectnessOfIteration","iterable","123","getIteratorMethod","isArrayIteratorMethod","step","mapfn","mapping","iteratorMethod","124","postfix","random","125","NATIVE_SYMBOL","126","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","127","addToUnscopables","defineIterator","iterated","kind","Arguments","128","129","$copyWithin","130","$every","131","$fill","132","$filter","speciesConstructor","133","$findIndex","predicate","134","$find","135","$forEach","136","137","$includes","138","$indexOf","139","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","140","$join","separator","141","$lastIndexOf","142","$map","143","144","$reduceRight","145","$reduce","146","middle","147","arrayLike","148","$slice","149","$some","150","$sort","sort","comparefn","151","begin","beginIndex","BYTES_PER_ELEMENT","152","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","153","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","154","createTypedArrayConstructor","init","155","156","pseudos","attrEqualityMods","ruleNestingOperators","substitutesEnabled","isHex","registerSelectorPseudos","unregisterSelectorPseudos","registerNumericPseudos","unregisterNumericPseudos","registerNestingOperators","operator","unregisterNestingOperators","registerAttrEqualityMods","mod","unregisterAttrEqualityMods","enableSubstitutes","disableSubstitutes","identSpecialChars","strReplacementsRev","singleQuoteEscapeChars","doubleQuotesEscapeChars","ParseContext","pos","chr","getIdent","getStr","skipWhitespace","quote","escapeTable","esc","hex","fromCharCode","parseInt","res","parseSelector","selector","parseSingleSelector","selectors","rule","parseRule","currentRule","op","nestingOperator","tagName","classNames","attr","attrValue","valueType","attrs","pseudoName","pseudo","escapeIdentifier","charCode","charCodeAt","extraCharCode","escapeStr","render","_renderEntity","entity","currentEntity","cn","157","isValue","isPlainFunction","normalizeOpts","contains","dscr","w","desc","gs","158","159","numberIsNaN","toPosInt","objHasOwnProperty","160","161","Boolean","162","iteratorSymbol","isArguments","callable","validValue","Context","getIterator","mapFn","163","164","captureStackTrace","err","ext","165","generate","mixin","arg1","arg2","ignore","166","objToString","167","isFunctionStringTag","168","169","170","171","Number","172","173","174","175","isFinite","176","177","objPropertyIsEnumerable","defVal","cb","compareFn","178","179","foo","bar","trzy","180","dest","181","182","183","function","184","_undefined","185","186","187","188","targetObj","189","sourceObject","symbol","190","opts1","191","192","193","194","ensureValue","stringifiable","195","isCallable","196","197","198","199","searchString","200","201","safeToString","reNewLine","char","202","factory","x","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","setTimeout","channel","iterations","observer","node","onFulfillment","onRejection","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","nextTick","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","require","runOnLoop","runOnContext","attemptVertx","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","local","promiseToString","cast","203","204","validTypes","toStringTag","205","206","objPrototype","created","ie11BugWorkaround","207","NativeSymbol","SymbolPolyfill","hasInstance","isConcatSpreadable","species","unscopables","208","validateSymbol","registry","for","keyFor","209","HiddenSymbol","isNativeSafe","generateName","setupStandardSymbols","setupSymbolRegistry","__description__","__name__","210","isSymbol","211","on","_once2","off","emit","descriptors","base","listener","_once","__eeOnceListener__","__ee__","once","listeners","candidate","splice","212","naiveFallback","__global__","213","214","215","216","limit","del","size","hit","oldIndex","nuIndex","delete","clear","217","aFrom","objectMap","defineLength","async","tbi","conf","currentCallback","currentContext","currentArgs","waiting","memoized","original","last","origCb","oldCache","218","extensions","dispose","resultArray","219","isPromise","maxAge","timeouts","preFetchAge","preFetchTimeouts","unref","clearTimeout","preFetch","220","toPosInteger","lruQueue","221","primitiveSet","ensureString","toShortString","supportedModes","isFailed","onSuccess","onFailure","resolvedMode","nextTickFailure","222","refCounter","deleteRef","getRefCount","223","resolveLength","plain","normalizer","primitive","224","customError","ee","resolveResolve","resolveNormalize","_on","memLength","_get","_clear","extDel","extGet","extHas","getListeners","setListeners","deleteListeners","resolvers","profileName","updateEnv","__memoized__","_has","225","226","optsLength","fnLength","isAsync","227","userNormalizer","228","resolveArgs","toArray","229","lastId","argsMap","230","pop","231","currentLength","232","233","234","configure","force","extFn","__profiler__","235","setImmediate","byObserver","Observer","currentQueue","timers","236","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","array","title","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","237","clearImmediate","immediateIds","nextImmediateId","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","238","239","maxTimeout","240","isPrototype","241","possibleTypes","242","classRe","243","244","245","genId","checkInstance","methodName","prefix","rand","helpers","_extends","dotRegex","unpackToObject","collection","audit","Audit","brand","application","tagExclude","lang","_init","_defaultLocale","_setDefaultLocale","locale","checks","rules","failureSummaries","incompleteFallbackMessage","checkIDs","_check$messages","messages","pass","fail","incomplete","ruleIDs","_i","help","_i2","failureMessage","_resetLocale","defaultLocale","applyLocale","getDefferedRule","performanceTimer","mark","ruleResult","debug","errResult","RuleResult","constants","CANTTELL","errorNode","getHelpUrl","_ref","helpUrlBase","CheckResult","relatedNodes","createExecutionContext","spec","Check","pushUniqueFrameSelector","selectorArray","frame","frames","querySelectorAll","frameloop","l2","include","exclude","parseSelectorArray","nodeList","getNodeFromTree","Node","documentElement","flatTree","_this","initiator","page","NodeList","normalizeContext","getFlattenedTree","Element","ownerDocument","Document","getRootNode","select","isNodeInContext","isHidden","findBy","pushUniqueFrame","actualNode","respondable","isInFrame","validateContext","nodeSorter","NA","pageLevel","impact","nodes","Rule","parentAudit","_audit","excludeHidden","enabled","any","none","tags","preload","matches","getResult","results","hasResults","_classCallCheck","_defineProperties","props","_createClass","protoProps","staticProps","_applyCheckLocale","_applyRuleLocale","_applyFailureSummaries","clone","commons","reporter","getDefaultConfiguration","commands","_constructHelpUrls","registerCommand","command","addRule","getRule","addCheck","normalizeOptions","_selectCache","allRulesToRun","reduce","out","ruleShouldRun","later","getRulesToRun","runNowRules","runLaterRules","nowRulesQueue","defer","preloaderQueue","assets","warn","queueForNowRulesAndPreloader","nowRulesAndPreloaderResults","assetsFromQueue","nowRulesResults","laterRulesQueue","deferredRule","laterRuleResults","after","ruleIds","runOnly","hasTag","hasRule","only","unmatchedTags","setBranding","branding","previous","metaData","helpUrl","resetRulesAndChecks","_cache","checkOptions","checkResult","checkHelper","DqElement","runSync","_options$enabled","gather","markStart","markEnd","markHiddenStart","markHiddenEnd","elements","element","measure","runChecks","checkQueue","option","getCheckOption","rej","runChecksSync","_trackPerformance","q","gatherAndMatchNodes","_logGatherPerformance","resolveNode","rejectNode","_logRulePerformance","_this2","_markStart","_markEnd","_markChecksStart","_markChecksEnd","timeElapsed","_this3","markMatchesStart","markMatchesEnd","afterChecks","getAllChecks","findAfterChecks","ruleID","beforeResults","checkID","checkResults","nodeResult","findCheckResults","afterResults","filtered","checkTypes","filterChecks","sanitizeNodes","whitespaceRegex","AbstractVirtualNode","children","className","classAttr","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","isXHTMLGlobal","SerialVirtualNode","_axe$AbstractVirtualN","serialNode","_ref$attributes","attributes","attrMap","_props","nodeName","_serialNode$nodeType","nodeType","assert","freeze","normaliseProps","_attrs","htmlFor","attrName","VirtualNode","shadowId","_isHidden","isXHTML","_isXHTML","getAttribute","hasAttribute","computedStyle","getPropertyValue","_this$actualNode","multiple","isFocusable","dom","tabbableElements","getTabbableElements","clientRects","getClientRects","rect","width","boundingClientRect","getBoundingClientRect","cleanupPlugins","cleanupErrors","plugins","cleanup","flattenedTree","body","sendCommandToFrame","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","runCommand","keepalive","runRules","Plugin","_run","_collect","collect","_registry","resultGroups","resultGroupMap","priority","group","definition","axeVersion","ver","specVersion","_specVersion$split","_specVersion$split2","canary","_version$split$map","_version$split$map2","major","minor","patch","_axe$version$split","_axe$version$split2","axeCanary","_axeVersion$split$map","_axeVersion$split$map2","axeMajor","axeMinor","axePatch","reporters","modifiedRules","disableOtherRules","getRules","matchingRules","ruleData","matchingRule","rd","_load","respond","add","impl","registerPlugin","plugin","defaultReporter","_memoizedFns","_tree","_selectorData","getSelectorData","scrollState","auditStart","iframes","collectResultsFromFrames","restoreScroll","getScrollState","setScrollState","auditEnd","mergeResults","publishMetaData","finalizeRuleResult","getReporter","addReporter","isDefault","reset","_runRules","runVirtualRule","vNode","rawResults","aggregateResult","violations","failureSummary","getEnvironmentData","toolOptions","normalizeRunParams","typeErr","potential","isContext","_resolve","_reject","_running","nodeData","failingChecks","sum","win","_win$screen","screen","_win$navigator","_win$location","innerHeight","innerWidth","orientation","msOrientation","mozOrientation","testEngine","testRunner","testEnvironment","windowWidth","windowHeight","orientationAngle","angle","orientationType","timestamp","resultKeys","processAggregate","resultObject","resultTypes","subResult","elementRef","fromFrame","xpath","checkRes","relatedNode","normalizeRelatedNodes","passes","inapplicable","raw","transformedResult","_types","typeResult","addFailureSummaries","aggregate","initial","sorting","_axe$constants","CANTTELL_PRIO","FAIL_PRIO","checkMap","PASS_PRIO","anyAllNone","functor","copyToGroup","resultCopy","getSelector","_fromFrame","absolutePaths","_options","toRoot","outerHTML","XMLSerializer","serializeToString","maxLength","truncate","getSource","_element","isMostlyNumbers","splitString","splitIndex","trimRight","uriParser","query","_splitString","_splitString2","_splitString3","_splitString4","_url$split","_url$split2","_splitString5","_splitString6","_splitString7","_splitString8","_splitString9","_splitString10","aggregateChecks","nodeResOriginal","priorities","impacts","aggregateNodeResults","nodeResults","resultList","groupName","impactGroup","FAIL_GROUP","CANTTELL_GROUP","impactList","failure","NA_GROUP","areStylesSet","styles","stopAt","styl","att","parentNode","bool","_data","parameters","frameWaitTime","parameter","frameElement","otherVNode","containsShadowChild","compareDocumentPosition","parser","cssParser","getXpath","matchesSelector","candidates","getMethod","escapeSelector","codeUnit","firstCodeUnit","extendMetaData","flattenTree","retVal","realArray","reduceShadowDOM","replacements","isShadowRoot","shadowRoot","childNodes","getDistributedNodes","assignedNodes","firstChild","nextSibling","getSlotChildren","getBaseLang","getCheckMessage","checkId","processMessage","ruleCheckOption","checkOption","opts","getFriendlyUriEnd","uri","currentDomain","_options$maxLength","_uriParser","pathEnd","lastDotIndex","getNodeAttributes","NamedNodeMap","cloneNode","doc","getScroll","elm","overflowX","scrollWidth","clientWidth","overflowY","scrollHeight","clientHeight","overflowXStyle","overflowYStyle","scrollableX","scrollableY","top","scrollTop","scrollLeft","styleSheet","ignoredAttributes","getAttributeNameValue","at","atnv","friendly","encodeURI","countSort","filterAttributes","getNthChildString","siblings","sibling","getElmId","getBaseSelector","localName","getThreeLeastCommonFeatures","selectorData","features","clss","classData","classes","tagData","classList","cl","ind","uncommonClasses","atts","attData","hasAttributes","uncommonAttributes","feat","generateSelector","similar","_options$toRoot","parentElement","domTree","currentLevel","_loop","current","comp","getStyleSheetFactory","dynamicDoc","_options$isCrossOrigi","isCrossOrigin","root","_options$isLink","isLink","head","sheet","xpathArray","xpathToString","getXPathArray","previousSibling","injectStyle","cssText","getElementsByTagName","recursed","assignedSlot","htmlTags","isHtmlElement","namespaceURI","possibleShadowRoots","matchExpression","expression","exp","matchesTag","hasClass","matchesClasses","nodeAtt","matchesAttributes","matchesId","matchesExpression","expressions","toStr","maxSafeInteger","escapeRegExp","reUnescape","convertAttributes","regexp","attributeKey","attributeValue","convertClasses","convertPseudos","convertExpressions","newExp","combinator","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","isSameOriginStylesheet","cssRules","filerStyleAndLinkAttributesInDocumentFragment","linkHref","linkRel","rel","filterMediaIsPrint","media","convertSelector","matchAnyParent","exps","frameResults","frameResult","normalizeResult","resultSet","frameSelector","frameSpec","pushFrame","sorterResult","firstFromFrame","spliceNodes","nodeA","nodeB","parseCrossOriginStylesheet","importedUrls","axiosOptions","convertDataToStylesheet","rootNode","parseStylesheet","parseSameOriginStylesheet","cssImportRules","cssImportUrlsNotAlreadyImported","importUrl","cssRuleIndex","newPriority","isCrossOriginRequest","nonImportCSSRules","isSameOrigin","performance","originalTime","lastRecordedTime","logMeasures","markName","measureName","startMark","endMark","req","duration","getEntriesByType","axeStart","getEntriesByName","measures","startTime","output","nextKey","pollyfillElementsFromPoint","elementsFromPoint","msElementsFromPoint","usePointer","pointerEvents","cssProp","cssDisableVal","innerHTML","y","previousPointerEvents","elementFromPoint","getPropertyPriority","setProperty","removeChild","k","currentElement","items","T","kValue","A","preloadCssom","_ref$treeRoot","treeRoot","rootNodes","tree","ids","querySelectorAllFilter","uniqueArray","getAllRootNodesInTree","implementation","createHTMLDocument","_ref2","sheets","textContent","stylesheet","getStylesheetsFromDocumentFragment","styleSheets","mediaText","getStylesheetsFromDocument","hrefs","filterStylesheetsWithSameHref","getStylesheetsOfRootNode","rootIndex","parseOptions","sheetIndex","getCssomForAllRootNodes","flattenAssets","acc","preloadMedia","mediaVirtualNodes","_ref3","onMediaReady","removeEventListener","shouldPreload","getPreloadConfig","_axe$constants$preloa","preloadFunctionsMap","cssom","_axe$utils$getPreload","preloadTimeout","asset","preloadAssets","uuid","dataRegex","substitute","regex","extender","checksData","shouldBeTrue","sourceData","checkData","getDefaultMsg","missingData","messageKey","msg","getIncompleteReason","createLocalVariables","vNodes","anyLevel","thisLevel","parentShadowId","matchTags","defaultExclude","getElmScrollRecursive","scrolls","scroll","getDeepest","pushNode","singular","plural","rulesData","shouldBeFalse","childOnly","childAny","combined","added","rest","matchExpressions","funcGuard","tasks","started","remaining","completeQueue","complete","defaultFail","failed","createResolve","task","errorTypes","_getSource","post","topic","_respondable","_source","_axeuuid","_uuid","_keepalive","axeRespondables","v1","createResponder","parseMessage","dataString","ex","errorName","ErrConstructor","postedMessage","messageSource","verify","subscriber","responder","ruleOptions","windowScroll","pageXOffset","pageYOffset","setScroll","curried","reducedIncludes","thing","arr1","elem","tokenList","_global","_rng","_crypto","crypto","msCrypto","getRandomValues","_rnds8","_rnds","BufferClass","Buffer","_byteToHex","_hexToByte","unparse","buf","bth","_seedBytes","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","getTime","nsecs","dt","tl","tmh","v4","rnds","rng","ii","oct","validInputTypes","langs","validLangs","accesskeys","blink","bypass","checkboxgroup","dlitem","label","listitem","marquee","radiogroup","region","tabindex","fallbackrole","invalidrole","abstractrole","unsupportedrole","noId","ariaCurrent","caption","landmark","fieldset","bgImage","bgGradient","imgNode","bgOverlap","fgAlpha","elmPartiallyObscured","elmPartiallyObscuring","outsideViewport","equalRatio","shortTextContent","nonBmp","noXHTML","noLang","bgContrast","roleNotValid","exists","i1","l1","virtualNode","aria","getRole","noImplicit","dpub","fallback","allowImplicit","ignoredTags","role","getComposedParent","shouldMatchElement","reviewEmpty","supportedRoles","hasAttr","_axe$commons","autocomplete","sanitize","ariaDisabled","tabIndex","roleDef","lookupTable","isVisible","querySelector","findUpVirtual","textIndent","bottom","visuallyOverlaps","disabled","nodeParentLabel","relevantNode","relevantVirtualNode","getElementById","candidateVirtualNode","_candidate","visibleText","visibleVirtual","removeUnicode","emoji","punctuations","range","createRange","nodeValue","selectNodeContents","rects","noScroll","ignoreUnicode","ignoreLength","degreeThreshold","defaultView","_axe$commons2","idSelector","idMatchingElms","isAccessibleRef","_axe$commons3","explicitRoles","isValidRole","implicitRole","insertedIntoFocusOrder","isViolation","primaryLangValue","primaryXmlLangValue","_axe$commons4","accessibleTextVirtual","_axe$commons5","getRolesWithNameFromContents","arialabelText","arialabelledbyText","pixelThreshold","occuranceThreshold","nativeScopeFilter","excludedParentsForHeaderFooterLandmarks","landmarkRoles","getRolesByType","headerFooterElement","isLandmarkVirtual","table","isDataTable","isInTextBlock","scaleMinimum","lowerBound","currentSrc","allowedDuration","nodeText","margins","weight","italic","hasContentVirtual","isSkipLink","isOffscreen","tableArray","abstractRoles","getRoleType","allowed","invalid","allowedAttr","validateAttr","_ref$allowImplicit","_ref$ignoredTags","unallowedRoles","getElementUnallowedRoles","_axe$commons6","allowEmpty","idref","validateAttrValue","roleType","deprecated","allRoles","allowAbstract","_axe$commons7","labelText","accText","accessibleText","missing","_axe$commons$forms","forms","isNativeTextbox","isNativeSelect","isAriaTextbox","isAriaListbox","isAriaCombobox","isAriaRange","preChecks","required","requiredAttr","requiredOwned","implicitNodes","idrefs","owns","virtualTree","ariaOwned","implicit","implicitSelector","ariaOwns","_node","childRoles","one","ownedElements","childRole","textboxIndex","expandedChildRoles","expandedValue","expanded","popupRole","_index","expandedChildRole","missingIndex","missingRequiredChildren","hasDecendantWithRole","getMissingContext","requiredContext","includeElement","missingParents","owners","getAriaOwners","unsupportedAttrs","attribute","unsupported","isException","exceptions","evaluateRoleForElement","isUnsupportedRole","needsReview","skipAttrs","VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS","ARTICLE","ASIDE","NAV","SECTION","VALID_ROLES_FOR_SCROLLABLE_REGIONS","banner","complementary","contentinfo","form","main","navigation","validScrollableRole","validScrollableTagName","validScrollableSemantics","_axe$commons8","color","hasUnicode","bgNodes","bgColor","getBackgroundColor","fgColor","getForegroundColor","nodeStyle","fontSize","parseFloat","fontWeight","bold","cr","hasValidContrastRatio","truncatedResult","contrastRatio","incompleteData","toHexString","toFixed","expectedContrastRatio","isValid","_axe$commons9","getContrast","color1","color2","c1lum","getRelativeLuminance","c2lum","blockLike","isBlock","nodeColor","parentColor","parentBlock","elementIsDistinct","contrast","allowedTypesMap","bday","email","tel","photo","impp","autocompleteTerms","term","purposeTerm","stateTerms","allowedTypes","isValidAutocomplete","failureCode","getUnrelatedElements","matchingNodes","firstNode","firstElementChild","otherElements","checkFieldset","hasLabelledByText","ariaLabel","checkARIAGroup","runCheck","seen","hasBeenSeen","_axe$commons10","sharedLabels","uniqueLabels","groupItem","labels","newLabel","sharedLabel","uniqueLabel","accessibleTextOptions","inLabelledByContext","labelNode","elementsThatCanBeDisabled","isModalOpen","_ref4","_ref5","landmarks","matchingElms","elms","alt","_axe$commons11","parentVNode","labelVirtual","_axe$commons12","inControlContext","_ref6","isHumanInterpretable","nonLigatureText","visibleTextNodes","textVNode","isIconLigature","isStringContained","compare","compareWith","curatedCompareWith","curateString","curatedCompare","noUnicodeStr","ATVisibleLabels","uniqueLandmarks","currentResult","matchedResult","someResult","langValue","xmlLangValue","langAttr","langVal","baselangVal","parentTagName","parentRole","_axe$commons13","ALLOWED_ROLES","childNode","explicitRole","badNodes","hasNonEmptyTextNode","_axe$commons14","atLeastOneListitem","isEmpty","badRoleNodes","badRoles","isLi","isListItemRole","roles","hasDt","hasDd","_ref7","_ref8","_Object$assign","timer","_options$allowedDurat","playbackRange","hhMmSs","secs","mins","convertHourMinSecToSeconds","getPlaybackRange","currentTime","getPlayableDuration","_ref9$cssom","_ref10$degreeThreshol","isLocked","relatedElements","rulesGroupByDocumentFragment","_ref11","_Object$keys","_rulesGroupByDocument","orientationRules","isMediaRuleWithOrientation","_ref16","cssRule","locked","_ref13","selectorText","transformStyle","transform","webkitTransform","msTransform","_matches","transformFn","transformFnValue","degrees","transformFunction","getAngleInDegrees","_transformFnValue$spl","_transformFnValue$spl2","z","angleWithUnit","_values","_b","convertRadToDeg","atan2","sinB","asin","cosB","cos","acos","getAngleInDegreesFromMatrixTransform","getRotationInDegrees","getIsOrientationLocked","_ref12","_ref14","unit","turn","grad","convertGradToDeg","radians","PI","_ref17","_ref17$scaleMinimum","_ref17$lowerBound","contentValue","_contentValue$split","_contentValue$split2","curatedKey","curatedValue","_ref18","_ref18$scaleMinimum","_ref18$lowerBound","_contentValue$split3","_contentValue$split4","ariaHeadingLevel","headingLevel","prevLevel","_axe$commons15","afterData","urlProps","urlPropsFromAttribute","incompleteResults","_ref19","uniqueResults","nameMap","_loop2","_currentResult$relate","_currentResult$data","sameNameResults","_ref20","resultNum","isSameUrl","_ref21","isIdenticalObject","aProps","bProps","propName","aValue","bValue","vLink","parsedParams","currentIndex","prevSibling","normalizeFontWeight","getStyleValues","nextNode","outerText","innerText","getTextContainer","isItalic","isHeaderStyle","styleA","styleB","margin","currStyle","nextStyle","prevStyle","blockquote","_axe$commons16","implicitAriaLiveRoles","regionlessNodes","implicitLandmarks","findRegionlessElms","ariaLive","titleAttr","isRegion","getElementByReference","_hasRegionDescendant","hasContent","_ref22","titles","foundNode","uniqueIds","_axe$commons17","_axe$commons18","overriddenProperties","titleText","titleNode","_ref23","toGrid","firstRow","rows","curr","summary","row","cell","badCells","rowIndex","rowLength","cellIndex","cellLength","cells","isHTML5","tableUtils","getAllCells","tableGrid","isDataCell","getHeaders","header","reviewCells","isSelf","notOfTable","headersAttr","reffedHeaders","getCellPosition","hasCell","isColumnHeader","traverse","isRowHeader","parentStyle","isNull","isNotNull","unstandardized","globalAttributes","alert","owned","nameFrom","allowedElements","alertdialog","article","button","checkbox","columnheader","combobox","properties","composite","dialog","directory","namefrom","feed","figure","grid","gridcell","heading","img","link","listbox","math","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","note","presentation","progressbar","radio","roletype","rowgroup","rowheader","scrollbar","searchbox","section","sectionhead","slider","spinbutton","structure","switch","tab","tablist","tabpanel","textbox","toolbar","tooltip","treegrid","treeitem","widget","elementsAllowedNoRole","condition","elementsAllowedAnyRole","_ref24","AREA","_ref25","BUTTON","_ref26","IMG","_ref27","INPUT","_ref28","LI","_ref29","MENU","_ref30","OPTION","_ref31","SELECT","_ref32","SVG","_ref33","rolesOfType","fromDefinition","EdgeFormDefaults","refs","accessibleName","accessibleNameAdd","startNode","dpubRoles","getRoleSegments","nodeRoles","hasAttributeNS","epubRoles","getAttributeNS","roleSegments","isAriaRoleAllowedOnElement","getOwnedVirtual","_ref34","ownedElms","_ref35","abstracts","roleAttr","roleList","validRoles","idRefsRegex","_getFonts","font","bgElm","obscured","visuallyContains","alpha","contentOverlapping","targetElement","bgNode","targetRect","obscuringElements","shadowElementsFromPoint","cacheIdRefs","refAttrs","idRefs","tokens","_i3","roleValue","roleDefinition","_ref36","namedFromContents","_ref37","strict","_ref38","_ref38$flagUnsupporte","flagUnsupported","isRoleUnsupported","availableImplicitRoles","lookup","implicitNodeTypeSelector","nodeAttributes","ariaAttributes","getScore","score","scoredRoleA","scoredRoleB","sortedRole","sortRolesByOptimalAriaContext","attrInfo","centerPointOfRect","height","Color","red","green","blue","redString","greenString","blueString","rgbRegex","rgbaRegex","parseRgbString","colorString","rSRGB","gSRGB","bSRGB","flattenColors","g","bL","fL","bg","fg","isBold","elementHasImage","bgImageStyle","hasBgImage","hasGradient","ancestorNode","edge","borderClr","hasStyle","tDec","bgElms","bgColors","elmStack","getBackgroundStack","bgElmStyle","getOwnBackgroundColor","colors","filteredRectStack","elmIndex","bodyIndex","sortPageBackground","reduceToElementsBelowFloating","originalElm","calculateObscuringElement","rectStack","getRectStack","isSame","boundingStack","rectList","rectA","rectB","elementIndex","getElementStack","filteredArr","getTextElementStack","isOpaque","opacity","getOpacity","_opacity","finalOpacity","elmStyle","targetNode","currentNode","floatingPositions","finalElements","targetFound","position","findElmsInContext","_ref39","_ref39$elm","escapedValue","findUp","closest","fragment","getElementsByName","getElementCoordinates","scrollOffset","getScrollOffset","xOffset","yOffset","coords","getPositionOrder","getComputedStylePropertyValue","isFloated","_isFloated","floated","visuallySort","_stackingOrder","aNode","bNode","boundaries","boundary","_window$Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","docPosition","DOMOrder","isDescendant","aPosition","bPosition","getStackingOrder","stackingOrder","zIndex","mixBlendMode","perspective","clipPath","willChange","contain","parentDsiplay","isStackingContext","findScrollRegionParent","scrollRegionParent","checkedNodes","_scrollRegionParent","addNodeToGrid","_grid","startRow","startCol","endRow","endCol","col","createGrid","rootGrid","container","subGrid","_subGrid","treeWalker","createTreeWalker","NodeFilter","SHOW_ELEMENT","_vNode","gridCellNode","clientRect","rectX","rectY","gridContainer","docElement","getViewportSize","hiddenTextElms","focusDisabled","isHiddenWithCSS","_isHiddenWithCSS","descendentVisibilityValue","HIDDEN_VISIBILITY_VALUES","visibilityValue","noRecursion","ignoreAria","_ref40","hasChildTextNodes","isVisualContent","isNativelyFocusable","doctype","publicId","systemId","virtualParent","getBlockParent","parentText","linkText","inBrBlock","walkDomNode","currNode","overflow","modalPercent","viewport","percentWidth","percentHeight","stacks","point","_loop3","modalElement","_ret3","leftBoundary","noParentScrolled","isInternalLinkRegex","firstPageLink","clipRegex","clipPathRegex","screenReader","cacheName","mapEl","mapElName","mapElRootNode","_ref41","isAreaVisible","matchesClip","matchesClipPath","isClipped","visualRoles","getSearchPairs","searchStr","pairs","_pair$split","_pair$split2","_pair$split2$","getHashRoute","hasMatch","getScrollAncestor","ancestor","rectBound","parentRect","parentTop","parentLeft","parentScrollArea","HTMLBodyElement","HTMLHtmlElement","nodeX","nodeY","shadowStack","ownerSVGElement","_getPathnameOrFilenam","filename","getPathnameOrFilename","parentScrollAncestor","nextScrollAncestor","rangeRoles","nonTextInputTypes","matcher","fromFunction","matchers","traverseForHeaders","headerType","rowEnd","colEnd","tableCell","textNodeContent","_ref42","shouldIgnoreHidden","_ref43","includeHidden","prepareContext","definitionItem","matcherName","matchMethod","getValue","fromPrimative","someString","matcherType","tableElm","rowHeaders","colHeaders","getScope","scope","headerRow","headerCol","tHead","tFoot","childIndex","childLength","hasBorder","offsetWidth","offsetHeight","sampleRow","colSpan","isHeader","columnIndex","rowSpan","startPos","traverseTable","computationSteps","nativeTextAlternative","formControlValue","subtreeText","accName","alreadyProcessed","virtualnode","processed","controlValueRoles","formControlValueMethods","nativeTextboxValue","nativeSelectValue","selected","ariaTextboxValue","ariaListboxValue","ariaComboboxValue","ariaRangeValue","valueNow","accessibleNameFromFieldValue","valueMethods","valueString","differenceThreshold","getContext","canvasContext","canvas","fonts","fontFamily","occurances","numLigatures","fontStyle","firstChar","measureText","diff","textAlign","textBaseline","fillText","compareData","getImageData","pixel","clearRect","differences","expectedWidth","_char","actualWidth","pixelDifference","sizeDifference","getExplicitLabels","_ref45","findTextMethods","nativeElementType","nativeTextMethods","nativeType","_ref46","namingMethods","standaloneTerms","qualifiers","qualifiedTerms","locations","_ref44","_ref44$looseTyped","looseTyped","_ref44$stateTerms","_ref44$locations","_ref44$qualifiers","_ref44$standaloneTerm","_ref44$qualifiedTerms","labelContext","explicitLabels","implicitLabel","visible","textMethods","defaultButtonValues","submit","image","attrText","_ref49","descendantText","_ref50","nodeNames","valueText","_ref47","buttonDefaultText","_ref48","tableCaptionText","figureText","fieldsetLegendText","altText","tableSummaryText","singleSpace","contentText","appendAccessibleText","phrasingElements","contentTextAdd","alwaysTitleElements","parentVisible","noRecursing"],"mappings":"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AAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,WAAY,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,M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","file":"b88d22df-cc0691589893355dc701.js","sourcesContent":["require(\"core-js/modules/es.promise.finally\");\n\n/*! axe v3.5.5\n * Copyright (c) 2020 Deque Systems, Inc.\n *\n * Your use of this Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This entire copyright notice must appear in every copy of this file you\n * distribute or in any file that contains substantial portions of this source\n * code.\n */\n(function axeFunction(window) {\n var global = window;\n var document = window.document;\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var axe = axe || {};\n axe.version = '3.5.5';\n\n if (typeof define === 'function' && define.amd) {\n define('axe-core', [], function () {\n 'use strict';\n\n return axe;\n });\n }\n\n if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports && typeof axeFunction.toString === 'function') {\n axe.source = '(' + axeFunction.toString() + ')(typeof window === \"object\" ? window : this);';\n module.exports = axe;\n }\n\n if (typeof window.getComputedStyle === 'function') {\n window.axe = axe;\n }\n\n var commons;\n\n function SupportError(error) {\n this.name = 'SupportError';\n this.cause = error.cause;\n this.message = '`'.concat(error.cause, '` - feature unsupported in your environment.');\n\n if (error.ruleId) {\n this.ruleId = error.ruleId;\n this.message += ' Skipping '.concat(this.ruleId, ' rule.');\n }\n\n this.stack = new Error().stack;\n }\n\n SupportError.prototype = Object.create(Error.prototype);\n SupportError.prototype.constructor = SupportError;\n (function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = 'function' == typeof require && require;\n\n if (!f && c) {\n return c(i, !0);\n }\n\n if (u) {\n return u(i, !0);\n }\n\n var a = new Error('Cannot find module \\'' + i + '\\'');\n throw a.code = 'MODULE_NOT_FOUND', a;\n }\n\n var p = n[i] = {\n exports: {}\n };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n\n return n[i].exports;\n }\n\n for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) {\n o(t[i]);\n }\n\n return o;\n }\n\n return r;\n })()({\n 1: [function (_dereq_, module, exports) {\n if (!('Promise' in window)) {\n _dereq_('es6-promise').polyfill();\n }\n\n if (!('Uint32Array' in window)) {\n _dereq_('core-js/features/typed-array/uint32-array');\n }\n\n if (window.Uint32Array) {\n if (!('some' in window.Uint32Array.prototype)) {\n _dereq_('core-js/features/typed-array/some');\n }\n\n if (!('reduce' in window.Uint32Array.prototype)) {\n _dereq_('core-js/features/typed-array/reduce');\n }\n }\n\n _dereq_('weakmap-polyfill');\n\n axe.imports = {\n axios: _dereq_('axios'),\n CssSelectorParser: _dereq_('css-selector-parser').CssSelectorParser,\n doT: _dereq_('@deque/dot'),\n emojiRegexText: _dereq_('emoji-regex'),\n memoize: _dereq_('memoizee')\n };\n }, {\n '@deque/dot': 2,\n axios: 3,\n 'core-js/features/typed-array/reduce': 31,\n 'core-js/features/typed-array/some': 32,\n 'core-js/features/typed-array/uint32-array': 33,\n 'css-selector-parser': 155,\n 'emoji-regex': 158,\n 'es6-promise': 202,\n memoizee: 223,\n 'weakmap-polyfill': 245\n }],\n 2: [function (_dereq_, module, exports) {\n (function (global) {\n (function () {\n 'use strict';\n\n var doT = {\n name: 'doT',\n version: '1.1.1',\n templateSettings: {\n evaluate: /\\{\\{([\\s\\S]+?(\\}?)+)\\}\\}/g,\n interpolate: /\\{\\{=([\\s\\S]+?)\\}\\}/g,\n encode: /\\{\\{!([\\s\\S]+?)\\}\\}/g,\n use: /\\{\\{#([\\s\\S]+?)\\}\\}/g,\n useParams: /(^|[^\\w$])def(?:\\.|\\[[\\'\\\"])([\\w$\\.]+)(?:[\\'\\\"]\\])?\\s*\\:\\s*([\\w$\\.]+|\\\"[^\\\"]+\\\"|\\'[^\\']+\\'|\\{[^\\}]+\\})/g,\n define: /\\{\\{##\\s*([\\w\\.$]+)\\s*(\\:|=)([\\s\\S]+?)#\\}\\}/g,\n defineParams: /^\\s*([\\w$]+):([\\s\\S]+)/,\n conditional: /\\{\\{\\?(\\?)?\\s*([\\s\\S]*?)\\s*\\}\\}/g,\n iterate: /\\{\\{~\\s*(?:\\}\\}|([\\s\\S]+?)\\s*\\:\\s*([\\w$]+)\\s*(?:\\:\\s*([\\w$]+))?\\s*\\}\\})/g,\n varname: 'it',\n strip: true,\n append: true,\n selfcontained: false,\n doNotSkipEncoded: false\n },\n template: undefined,\n compile: undefined,\n log: true\n };\n\n (function () {\n if (typeof globalThis === 'object') {\n return;\n }\n\n try {\n Object.defineProperty(Object.prototype, '__magic__', {\n get: function get() {\n return this;\n },\n configurable: true\n });\n __magic__.globalThis = __magic__;\n delete Object.prototype.__magic__;\n } catch (e) {\n window.globalThis = function () {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (typeof this !== 'undefined') {\n return this;\n }\n\n throw new Error('Unable to locate global `this`');\n }();\n }\n })();\n\n doT.encodeHTMLSource = function (doNotSkipEncoded) {\n var encodeHTMLRules = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n },\n matchHTML = doNotSkipEncoded ? /[&<>\"'\\/]/g : /&(?!#?\\w+;)|<|>|\"|'|\\//g;\n return function (code) {\n return code ? code.toString().replace(matchHTML, function (m) {\n return encodeHTMLRules[m] || m;\n }) : '';\n };\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = doT;\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return doT;\n });\n } else {\n globalThis.doT = doT;\n }\n\n var startend = {\n append: {\n start: '\\'+(',\n end: ')+\\'',\n startencode: '\\'+encodeHTML('\n },\n split: {\n start: '\\';out+=(',\n end: ');out+=\\'',\n startencode: '\\';out+=encodeHTML('\n }\n },\n skip = /$^/;\n\n function resolveDefs(c, block, def) {\n return (typeof block === 'string' ? block : block.toString()).replace(c.define || skip, function (m, code, assign, value) {\n if (code.indexOf('def.') === 0) {\n code = code.substring(4);\n }\n\n if (!(code in def)) {\n if (assign === ':') {\n if (c.defineParams) {\n value.replace(c.defineParams, function (m, param, v) {\n def[code] = {\n arg: param,\n text: v\n };\n });\n }\n\n if (!(code in def)) {\n def[code] = value;\n }\n } else {\n new Function('def', 'def[\\'' + code + '\\']=' + value)(def);\n }\n }\n\n return '';\n }).replace(c.use || skip, function (m, code) {\n if (c.useParams) {\n code = code.replace(c.useParams, function (m, s, d, param) {\n if (def[d] && def[d].arg && param) {\n var rw = (d + ':' + param).replace(/'|\\\\/g, '_');\n def.__exp = def.__exp || {};\n def.__exp[rw] = def[d].text.replace(new RegExp('(^|[^\\\\w$])' + def[d].arg + '([^\\\\w$])', 'g'), '$1' + param + '$2');\n return s + 'def.__exp[\\'' + rw + '\\']';\n }\n });\n }\n\n var v = new Function('def', 'return ' + code)(def);\n return v ? resolveDefs(c, v, def) : v;\n });\n }\n\n function unescape(code) {\n return code.replace(/\\\\('|\\\\)/g, '$1').replace(/[\\r\\t\\n]/g, ' ');\n }\n\n doT.template = function (tmpl, c, def) {\n c = c || doT.templateSettings;\n var cse = c.append ? startend.append : startend.split,\n needhtmlencode,\n sid = 0,\n indv,\n str = c.use || c.define ? resolveDefs(c, tmpl, def || {}) : tmpl;\n str = ('var out=\\'' + (c.strip ? str.replace(/(^|\\r|\\n)\\t* +| +\\t*(\\r|\\n|$)/g, ' ').replace(/\\r|\\n|\\t|\\/\\*[\\s\\S]*?\\*\\//g, '') : str).replace(/'|\\\\/g, '\\\\$&').replace(c.interpolate || skip, function (m, code) {\n return cse.start + unescape(code) + cse.end;\n }).replace(c.encode || skip, function (m, code) {\n needhtmlencode = true;\n return cse.startencode + unescape(code) + cse.end;\n }).replace(c.conditional || skip, function (m, elsecase, code) {\n return elsecase ? code ? '\\';}else if(' + unescape(code) + '){out+=\\'' : '\\';}else{out+=\\'' : code ? '\\';if(' + unescape(code) + '){out+=\\'' : '\\';}out+=\\'';\n }).replace(c.iterate || skip, function (m, iterate, vname, iname) {\n if (!iterate) {\n return '\\';} } out+=\\'';\n }\n\n sid += 1;\n indv = iname || 'i' + sid;\n iterate = unescape(iterate);\n return '\\';var arr' + sid + '=' + iterate + ';if(arr' + sid + '){var ' + vname + ',' + indv + '=-1,l' + sid + '=arr' + sid + '.length-1;while(' + indv + '<l' + sid + '){' + vname + '=arr' + sid + '[' + indv + '+=1];out+=\\'';\n }).replace(c.evaluate || skip, function (m, code) {\n return '\\';' + unescape(code) + 'out+=\\'';\n }) + '\\';return out;').replace(/\\n/g, '\\\\n').replace(/\\t/g, '\\\\t').replace(/\\r/g, '\\\\r').replace(/(\\s|;|\\}|^|\\{)out\\+='';/g, '$1').replace(/\\+''/g, '');\n\n if (needhtmlencode) {\n if (!c.selfcontained && globalThis && !globalThis._encodeHTML) {\n globalThis._encodeHTML = doT.encodeHTMLSource(c.doNotSkipEncoded);\n }\n\n str = 'var encodeHTML = typeof _encodeHTML !== \\'undefined\\' ? _encodeHTML : (' + doT.encodeHTMLSource.toString() + '(' + (c.doNotSkipEncoded || '') + '));' + str;\n }\n\n try {\n return new Function(c.varname, str);\n } catch (e) {\n if (typeof console !== 'undefined') {\n console.log('Could not create a template function: ' + str);\n }\n\n throw e;\n }\n };\n\n doT.compile = function (tmpl, def) {\n return doT.template(tmpl, null, def);\n };\n })();\n }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});\n }, {}],\n 3: [function (_dereq_, module, exports) {\n module.exports = _dereq_('./lib/axios');\n }, {\n './lib/axios': 5\n }],\n 4: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n var settle = _dereq_('./../core/settle');\n\n var buildURL = _dereq_('./../helpers/buildURL');\n\n var buildFullPath = _dereq_('../core/buildFullPath');\n\n var parseHeaders = _dereq_('./../helpers/parseHeaders');\n\n var isURLSameOrigin = _dereq_('./../helpers/isURLSameOrigin');\n\n var createError = _dereq_('../core/createError');\n\n module.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type'];\n }\n\n var request = new XMLHttpRequest();\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n request.timeout = config.timeout;\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response);\n request = null;\n };\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n request = null;\n };\n\n request.onerror = function handleError() {\n reject(createError('Network Error', config, null, request));\n request = null;\n };\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request));\n request = null;\n };\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = _dereq_('./../helpers/cookies');\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n delete requestHeaders[key];\n } else {\n request.setRequestHeader(key, val);\n }\n });\n }\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n request.send(requestData);\n });\n };\n }, {\n '../core/buildFullPath': 11,\n '../core/createError': 12,\n './../core/settle': 16,\n './../helpers/buildURL': 20,\n './../helpers/cookies': 22,\n './../helpers/isURLSameOrigin': 24,\n './../helpers/parseHeaders': 26,\n './../utils': 28\n }],\n 5: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./utils');\n\n var bind = _dereq_('./helpers/bind');\n\n var Axios = _dereq_('./core/Axios');\n\n var mergeConfig = _dereq_('./core/mergeConfig');\n\n var defaults = _dereq_('./defaults');\n\n function createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n utils.extend(instance, Axios.prototype, context);\n utils.extend(instance, context);\n return instance;\n }\n\n var axios = createInstance(defaults);\n axios.Axios = Axios;\n\n axios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n };\n\n axios.Cancel = _dereq_('./cancel/Cancel');\n axios.CancelToken = _dereq_('./cancel/CancelToken');\n axios.isCancel = _dereq_('./cancel/isCancel');\n\n axios.all = function all(promises) {\n return Promise.all(promises);\n };\n\n axios.spread = _dereq_('./helpers/spread');\n module.exports = axios;\n module.exports.default = axios;\n }, {\n './cancel/Cancel': 6,\n './cancel/CancelToken': 7,\n './cancel/isCancel': 8,\n './core/Axios': 9,\n './core/mergeConfig': 15,\n './defaults': 18,\n './helpers/bind': 19,\n './helpers/spread': 27,\n './utils': 28\n }],\n 6: [function (_dereq_, module, exports) {\n 'use strict';\n\n function Cancel(message) {\n this.message = message;\n }\n\n Cancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n };\n\n Cancel.prototype.__CANCEL__ = true;\n module.exports = Cancel;\n }, {}],\n 7: [function (_dereq_, module, exports) {\n 'use strict';\n\n var Cancel = _dereq_('./Cancel');\n\n function CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n }\n\n CancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n };\n\n CancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n };\n\n module.exports = CancelToken;\n }, {\n './Cancel': 6\n }],\n 8: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n };\n }, {}],\n 9: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n var buildURL = _dereq_('../helpers/buildURL');\n\n var InterceptorManager = _dereq_('./InterceptorManager');\n\n var dispatchRequest = _dereq_('./dispatchRequest');\n\n var mergeConfig = _dereq_('./mergeConfig');\n\n function Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n Axios.prototype.request = function request(config) {\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n };\n\n Axios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n };\n\n utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n });\n utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n });\n module.exports = Axios;\n }, {\n '../helpers/buildURL': 20,\n './../utils': 28,\n './InterceptorManager': 10,\n './dispatchRequest': 13,\n './mergeConfig': 15\n }],\n 10: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n function InterceptorManager() {\n this.handlers = [];\n }\n\n InterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n };\n\n InterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n };\n\n InterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n };\n\n module.exports = InterceptorManager;\n }, {\n './../utils': 28\n }],\n 11: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isAbsoluteURL = _dereq_('../helpers/isAbsoluteURL');\n\n var combineURLs = _dereq_('../helpers/combineURLs');\n\n module.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n };\n }, {\n '../helpers/combineURLs': 21,\n '../helpers/isAbsoluteURL': 23\n }],\n 12: [function (_dereq_, module, exports) {\n 'use strict';\n\n var enhanceError = _dereq_('./enhanceError');\n\n module.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n };\n }, {\n './enhanceError': 14\n }],\n 13: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n var transformData = _dereq_('./transformData');\n\n var isCancel = _dereq_('../cancel/isCancel');\n\n var defaults = _dereq_('../defaults');\n\n function throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n }\n\n module.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n config.headers = config.headers || {};\n config.data = transformData(config.data, config.headers, config.transformRequest);\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n };\n }, {\n '../cancel/isCancel': 8,\n '../defaults': 18,\n './../utils': 28,\n './transformData': 17\n }],\n 14: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n message: this.message,\n name: this.name,\n description: this.description,\n number: this.number,\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n };\n }, {}],\n 15: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('../utils');\n\n module.exports = function mergeConfig(config1, config2) {\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = ['baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'];\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys);\n var otherKeys = Object.keys(config2).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n };\n }, {\n '../utils': 28\n }],\n 16: [function (_dereq_, module, exports) {\n 'use strict';\n\n var createError = _dereq_('./createError');\n\n module.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n };\n }, {\n './createError': 12\n }],\n 17: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n module.exports = function transformData(data, headers, fns) {\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n };\n }, {\n './../utils': 28\n }],\n 18: [function (_dereq_, module, exports) {\n (function (process) {\n 'use strict';\n\n var utils = _dereq_('./utils');\n\n var normalizeHeaderName = _dereq_('./helpers/normalizeHeaderName');\n\n var DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n\n function setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n }\n\n function getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n adapter = _dereq_('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n adapter = _dereq_('./adapters/http');\n }\n\n return adapter;\n }\n\n var defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {}\n }\n\n return data;\n }],\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n };\n defaults.headers = {\n common: {\n Accept: 'application/json, text/plain, */*'\n }\n };\n utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n });\n utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n });\n module.exports = defaults;\n }).call(this, _dereq_('_process'));\n }, {\n './adapters/http': 4,\n './adapters/xhr': 4,\n './helpers/normalizeHeaderName': 25,\n './utils': 28,\n _process: 236\n }],\n 19: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n };\n }, {}],\n 20: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n function encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n }\n\n module.exports = function buildURL(url, params, paramsSerializer) {\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n };\n }, {\n './../utils': 28\n }],\n 21: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n };\n }, {}],\n 22: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n module.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 864e5);\n }\n };\n }() : function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n }();\n }, {\n './../utils': 28\n }],\n 23: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function isAbsoluteURL(url) {\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n };\n }, {}],\n 24: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n module.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n }() : function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n }();\n }, {\n './../utils': 28\n }],\n 25: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('../utils');\n\n module.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n };\n }, {\n '../utils': 28\n }],\n 26: [function (_dereq_, module, exports) {\n 'use strict';\n\n var utils = _dereq_('./../utils');\n\n var ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n\n module.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n };\n }, {\n './../utils': 28\n }],\n 27: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n };\n }, {}],\n 28: [function (_dereq_, module, exports) {\n 'use strict';\n\n var bind = _dereq_('./helpers/bind');\n\n var toString = Object.prototype.toString;\n\n function isArray(val) {\n return toString.call(val) === '[object Array]';\n }\n\n function isUndefined(val) {\n return typeof val === 'undefined';\n }\n\n function isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n }\n\n function isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n }\n\n function isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n }\n\n function isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n }\n\n function isString(val) {\n return typeof val === 'string';\n }\n\n function isNumber(val) {\n return typeof val === 'number';\n }\n\n function isObject(val) {\n return val !== null && typeof val === 'object';\n }\n\n function isDate(val) {\n return toString.call(val) === '[object Date]';\n }\n\n function isFile(val) {\n return toString.call(val) === '[object File]';\n }\n\n function isBlob(val) {\n return toString.call(val) === '[object Blob]';\n }\n\n function isFunction(val) {\n return toString.call(val) === '[object Function]';\n }\n\n function isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n }\n\n function isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n }\n\n function trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n }\n\n function isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n }\n\n function forEach(obj, fn) {\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n if (typeof obj !== 'object') {\n obj = [obj];\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n }\n\n function merge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n }\n\n function deepMerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n }\n\n function extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n }\n\n module.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n };\n }, {\n './helpers/bind': 19\n }],\n 29: [function (_dereq_, module, exports) {\n _dereq_('../../modules/es.typed-array.from');\n\n _dereq_('../../modules/es.typed-array.of');\n\n _dereq_('../../modules/es.typed-array.copy-within');\n\n _dereq_('../../modules/es.typed-array.every');\n\n _dereq_('../../modules/es.typed-array.fill');\n\n _dereq_('../../modules/es.typed-array.filter');\n\n _dereq_('../../modules/es.typed-array.find');\n\n _dereq_('../../modules/es.typed-array.find-index');\n\n _dereq_('../../modules/es.typed-array.for-each');\n\n _dereq_('../../modules/es.typed-array.includes');\n\n _dereq_('../../modules/es.typed-array.index-of');\n\n _dereq_('../../modules/es.typed-array.join');\n\n _dereq_('../../modules/es.typed-array.last-index-of');\n\n _dereq_('../../modules/es.typed-array.map');\n\n _dereq_('../../modules/es.typed-array.reduce');\n\n _dereq_('../../modules/es.typed-array.reduce-right');\n\n _dereq_('../../modules/es.typed-array.reverse');\n\n _dereq_('../../modules/es.typed-array.set');\n\n _dereq_('../../modules/es.typed-array.slice');\n\n _dereq_('../../modules/es.typed-array.some');\n\n _dereq_('../../modules/es.typed-array.sort');\n\n _dereq_('../../modules/es.typed-array.subarray');\n\n _dereq_('../../modules/es.typed-array.to-locale-string');\n\n _dereq_('../../modules/es.typed-array.to-string');\n\n _dereq_('../../modules/es.typed-array.iterator');\n\n _dereq_('../../modules/es.object.to-string');\n }, {\n '../../modules/es.object.to-string': 128,\n '../../modules/es.typed-array.copy-within': 129,\n '../../modules/es.typed-array.every': 130,\n '../../modules/es.typed-array.fill': 131,\n '../../modules/es.typed-array.filter': 132,\n '../../modules/es.typed-array.find': 134,\n '../../modules/es.typed-array.find-index': 133,\n '../../modules/es.typed-array.for-each': 135,\n '../../modules/es.typed-array.from': 136,\n '../../modules/es.typed-array.includes': 137,\n '../../modules/es.typed-array.index-of': 138,\n '../../modules/es.typed-array.iterator': 139,\n '../../modules/es.typed-array.join': 140,\n '../../modules/es.typed-array.last-index-of': 141,\n '../../modules/es.typed-array.map': 142,\n '../../modules/es.typed-array.of': 143,\n '../../modules/es.typed-array.reduce': 145,\n '../../modules/es.typed-array.reduce-right': 144,\n '../../modules/es.typed-array.reverse': 146,\n '../../modules/es.typed-array.set': 147,\n '../../modules/es.typed-array.slice': 148,\n '../../modules/es.typed-array.some': 149,\n '../../modules/es.typed-array.sort': 150,\n '../../modules/es.typed-array.subarray': 151,\n '../../modules/es.typed-array.to-locale-string': 152,\n '../../modules/es.typed-array.to-string': 153\n }],\n 30: [function (_dereq_, module, exports) {\n _dereq_('../../modules/es.typed-array.uint32-array');\n\n _dereq_('./methods');\n\n var global = _dereq_('../../internals/global');\n\n module.exports = global.Uint32Array;\n }, {\n '../../internals/global': 68,\n '../../modules/es.typed-array.uint32-array': 154,\n './methods': 29\n }],\n 31: [function (_dereq_, module, exports) {\n _dereq_('../../modules/es.typed-array.reduce');\n }, {\n '../../modules/es.typed-array.reduce': 145\n }],\n 32: [function (_dereq_, module, exports) {\n _dereq_('../../modules/es.typed-array.some');\n }, {\n '../../modules/es.typed-array.some': 149\n }],\n 33: [function (_dereq_, module, exports) {\n var parent = _dereq_('../../es/typed-array/uint32-array');\n\n module.exports = parent;\n }, {\n '../../es/typed-array/uint32-array': 30\n }],\n 34: [function (_dereq_, module, exports) {\n module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n }\n\n return it;\n };\n }, {}],\n 35: [function (_dereq_, module, exports) {\n var isObject = _dereq_('../internals/is-object');\n\n module.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError('Can\\'t set ' + String(it) + ' as a prototype');\n }\n\n return it;\n };\n }, {\n '../internals/is-object': 81\n }],\n 36: [function (_dereq_, module, exports) {\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var create = _dereq_('../internals/object-create');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n var UNSCOPABLES = wellKnownSymbol('unscopables');\n var ArrayPrototype = Array.prototype;\n\n if (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n }\n\n module.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n };\n }, {\n '../internals/object-create': 87,\n '../internals/object-define-property': 89,\n '../internals/well-known-symbol': 126\n }],\n 37: [function (_dereq_, module, exports) {\n module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n }\n\n return it;\n };\n }, {}],\n 38: [function (_dereq_, module, exports) {\n var isObject = _dereq_('../internals/is-object');\n\n module.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n }\n\n return it;\n };\n }, {\n '../internals/is-object': 81\n }],\n 39: [function (_dereq_, module, exports) {\n module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n }, {}],\n 40: [function (_dereq_, module, exports) {\n 'use strict';\n\n var NATIVE_ARRAY_BUFFER = _dereq_('../internals/array-buffer-native');\n\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var global = _dereq_('../internals/global');\n\n var isObject = _dereq_('../internals/is-object');\n\n var has = _dereq_('../internals/has');\n\n var classof = _dereq_('../internals/classof');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var redefine = _dereq_('../internals/redefine');\n\n var defineProperty = _dereq_('../internals/object-define-property').f;\n\n var getPrototypeOf = _dereq_('../internals/object-get-prototype-of');\n\n var setPrototypeOf = _dereq_('../internals/object-set-prototype-of');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var uid = _dereq_('../internals/uid');\n\n var Int8Array = global.Int8Array;\n var Int8ArrayPrototype = Int8Array && Int8Array.prototype;\n var Uint8ClampedArray = global.Uint8ClampedArray;\n var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\n var TypedArray = Int8Array && getPrototypeOf(Int8Array);\n var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\n var ObjectPrototype = Object.prototype;\n var isPrototypeOf = ObjectPrototype.isPrototypeOf;\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\n var TYPED_ARRAY_TAG_REQIRED = false;\n var NAME;\n var TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n };\n\n var isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n };\n\n var isTypedArray = function isTypedArray(it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n };\n\n var aTypedArray = function aTypedArray(it) {\n if (isTypedArray(it)) {\n return it;\n }\n\n throw TypeError('Target is not a typed array');\n };\n\n var aTypedArrayConstructor = function aTypedArrayConstructor(C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) {\n return C;\n }\n } else {\n for (var ARRAY in TypedArrayConstructorsList) {\n if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n }\n }\n }\n\n throw TypeError('Target is not a typed array constructor');\n };\n\n var exportTypedArrayMethod = function exportTypedArrayMethod(KEY, property, forced) {\n if (!DESCRIPTORS) {\n return;\n }\n\n if (forced) {\n for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n }\n\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n };\n\n var exportTypedArrayStaticMethod = function exportTypedArrayStaticMethod(KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n\n if (!DESCRIPTORS) {\n return;\n }\n\n if (setPrototypeOf) {\n if (forced) {\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n }\n\n if (!TypedArray[KEY] || forced) {\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) {}\n } else {\n return;\n }\n }\n\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n };\n\n for (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) {\n NATIVE_ARRAY_BUFFER_VIEWS = false;\n }\n }\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n\n if (NATIVE_ARRAY_BUFFER_VIEWS) {\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) {\n setPrototypeOf(global[NAME], TypedArray);\n }\n }\n }\n }\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n\n if (NATIVE_ARRAY_BUFFER_VIEWS) {\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) {\n setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n }\n }\n }\n\n if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n }\n\n if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, {\n get: function get() {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n\n for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n }\n }\n\n module.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n };\n }, {\n '../internals/array-buffer-native': 39,\n '../internals/classof': 53,\n '../internals/create-non-enumerable-property': 57,\n '../internals/descriptors': 60,\n '../internals/global': 68,\n '../internals/has': 69,\n '../internals/is-object': 81,\n '../internals/object-define-property': 89,\n '../internals/object-get-prototype-of': 93,\n '../internals/object-set-prototype-of': 97,\n '../internals/redefine': 102,\n '../internals/uid': 124,\n '../internals/well-known-symbol': 126\n }],\n 41: [function (_dereq_, module, exports) {\n 'use strict';\n\n var global = _dereq_('../internals/global');\n\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var NATIVE_ARRAY_BUFFER = _dereq_('../internals/array-buffer-native');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var redefineAll = _dereq_('../internals/redefine-all');\n\n var fails = _dereq_('../internals/fails');\n\n var anInstance = _dereq_('../internals/an-instance');\n\n var toInteger = _dereq_('../internals/to-integer');\n\n var toLength = _dereq_('../internals/to-length');\n\n var toIndex = _dereq_('../internals/to-index');\n\n var IEEE754 = _dereq_('../internals/ieee754');\n\n var getPrototypeOf = _dereq_('../internals/object-get-prototype-of');\n\n var setPrototypeOf = _dereq_('../internals/object-set-prototype-of');\n\n var getOwnPropertyNames = _dereq_('../internals/object-get-own-property-names').f;\n\n var defineProperty = _dereq_('../internals/object-define-property').f;\n\n var arrayFill = _dereq_('../internals/array-fill');\n\n var setToStringTag = _dereq_('../internals/set-to-string-tag');\n\n var InternalStateModule = _dereq_('../internals/internal-state');\n\n var getInternalState = InternalStateModule.get;\n var setInternalState = InternalStateModule.set;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var DATA_VIEW = 'DataView';\n var PROTOTYPE = 'prototype';\n var WRONG_LENGTH = 'Wrong length';\n var WRONG_INDEX = 'Wrong index';\n var NativeArrayBuffer = global[ARRAY_BUFFER];\n var $ArrayBuffer = NativeArrayBuffer;\n var $DataView = global[DATA_VIEW];\n var $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\n var ObjectPrototype = Object.prototype;\n var RangeError = global.RangeError;\n var packIEEE754 = IEEE754.pack;\n var unpackIEEE754 = IEEE754.unpack;\n\n var packInt8 = function packInt8(number) {\n return [number & 255];\n };\n\n var packInt16 = function packInt16(number) {\n return [number & 255, number >> 8 & 255];\n };\n\n var packInt32 = function packInt32(number) {\n return [number & 255, number >> 8 & 255, number >> 16 & 255, number >> 24 & 255];\n };\n\n var unpackInt32 = function unpackInt32(buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n };\n\n var packFloat32 = function packFloat32(number) {\n return packIEEE754(number, 23, 4);\n };\n\n var packFloat64 = function packFloat64(number) {\n return packIEEE754(number, 52, 8);\n };\n\n var addGetter = function addGetter(Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, {\n get: function get() {\n return getInternalState(this)[key];\n }\n });\n };\n\n var get = function get(view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n\n if (intIndex + count > store.byteLength) {\n throw RangeError(WRONG_INDEX);\n }\n\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n };\n\n var set = function set(view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n\n if (intIndex + count > store.byteLength) {\n throw RangeError(WRONG_INDEX);\n }\n\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n\n for (var i = 0; i < count; i++) {\n bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n }\n };\n\n if (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n\n if (!DESCRIPTORS) {\n this.byteLength = byteLength;\n }\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n\n if (offset < 0 || offset > bufferLength) {\n throw RangeError('Wrong offset');\n }\n\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n\n if (offset + byteLength > bufferLength) {\n throw RangeError(WRONG_LENGTH);\n }\n\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n } else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n\n if (testView.getInt8(0) || !testView.getInt8(1)) {\n redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, {\n unsafe: true\n });\n }\n }\n\n setToStringTag($ArrayBuffer, ARRAY_BUFFER);\n setToStringTag($DataView, DATA_VIEW);\n module.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n };\n }, {\n '../internals/an-instance': 37,\n '../internals/array-buffer-native': 39,\n '../internals/array-fill': 43,\n '../internals/create-non-enumerable-property': 57,\n '../internals/descriptors': 60,\n '../internals/fails': 64,\n '../internals/global': 68,\n '../internals/ieee754': 73,\n '../internals/internal-state': 77,\n '../internals/object-define-property': 89,\n '../internals/object-get-own-property-names': 91,\n '../internals/object-get-prototype-of': 93,\n '../internals/object-set-prototype-of': 97,\n '../internals/redefine-all': 101,\n '../internals/set-to-string-tag': 106,\n '../internals/to-index': 112,\n '../internals/to-integer': 114,\n '../internals/to-length': 115\n }],\n 42: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toObject = _dereq_('../internals/to-object');\n\n var toAbsoluteIndex = _dereq_('../internals/to-absolute-index');\n\n var toLength = _dereq_('../internals/to-length');\n\n var min = Math.min;\n\n module.exports = [].copyWithin || function copyWithin(target, start) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n\n while (count-- > 0) {\n if (from in O) {\n O[to] = O[from];\n } else {\n delete O[to];\n }\n\n to += inc;\n from += inc;\n }\n\n return O;\n };\n }, {\n '../internals/to-absolute-index': 111,\n '../internals/to-length': 115,\n '../internals/to-object': 116\n }],\n 43: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toObject = _dereq_('../internals/to-object');\n\n var toAbsoluteIndex = _dereq_('../internals/to-absolute-index');\n\n var toLength = _dereq_('../internals/to-length');\n\n module.exports = function fill(value) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n\n while (endPos > index) {\n O[index++] = value;\n }\n\n return O;\n };\n }, {\n '../internals/to-absolute-index': 111,\n '../internals/to-length': 115,\n '../internals/to-object': 116\n }],\n 44: [function (_dereq_, module, exports) {\n var toIndexedObject = _dereq_('../internals/to-indexed-object');\n\n var toLength = _dereq_('../internals/to-length');\n\n var toAbsoluteIndex = _dereq_('../internals/to-absolute-index');\n\n var createMethod = function createMethod(IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n\n if (IS_INCLUDES && el != el) {\n while (length > index) {\n value = O[index++];\n\n if (value != value) {\n return true;\n }\n }\n } else {\n for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) {\n return IS_INCLUDES || index || 0;\n }\n }\n }\n\n return !IS_INCLUDES && -1;\n };\n };\n\n module.exports = {\n includes: createMethod(true),\n indexOf: createMethod(false)\n };\n }, {\n '../internals/to-absolute-index': 111,\n '../internals/to-indexed-object': 113,\n '../internals/to-length': 115\n }],\n 45: [function (_dereq_, module, exports) {\n var bind = _dereq_('../internals/function-bind-context');\n\n var IndexedObject = _dereq_('../internals/indexed-object');\n\n var toObject = _dereq_('../internals/to-object');\n\n var toLength = _dereq_('../internals/to-length');\n\n var arraySpeciesCreate = _dereq_('../internals/array-species-create');\n\n var push = [].push;\n\n var createMethod = function createMethod(TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n\n if (TYPE) {\n if (IS_MAP) {\n target[index] = result;\n } else if (result) {\n switch (TYPE) {\n case 3:\n return true;\n\n case 5:\n return value;\n\n case 6:\n return index;\n\n case 2:\n push.call(target, value);\n }\n } else if (IS_EVERY) {\n return false;\n }\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n };\n\n module.exports = {\n forEach: createMethod(0),\n map: createMethod(1),\n filter: createMethod(2),\n some: createMethod(3),\n every: createMethod(4),\n find: createMethod(5),\n findIndex: createMethod(6)\n };\n }, {\n '../internals/array-species-create': 50,\n '../internals/function-bind-context': 65,\n '../internals/indexed-object': 74,\n '../internals/to-length': 115,\n '../internals/to-object': 116\n }],\n 46: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toIndexedObject = _dereq_('../internals/to-indexed-object');\n\n var toInteger = _dereq_('../internals/to-integer');\n\n var toLength = _dereq_('../internals/to-length');\n\n var arrayMethodIsStrict = _dereq_('../internals/array-method-is-strict');\n\n var arrayMethodUsesToLength = _dereq_('../internals/array-method-uses-to-length');\n\n var min = Math.min;\n var nativeLastIndexOf = [].lastIndexOf;\n var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\n var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', {\n ACCESSORS: true,\n 1: 0\n });\n var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n module.exports = FORCED ? function lastIndexOf(searchElement) {\n if (NEGATIVE_ZERO) {\n return nativeLastIndexOf.apply(this, arguments) || 0;\n }\n\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n\n if (arguments.length > 1) {\n index = min(index, toInteger(arguments[1]));\n }\n\n if (index < 0) {\n index = length + index;\n }\n\n for (; index >= 0; index--) {\n if (index in O && O[index] === searchElement) {\n return index || 0;\n }\n }\n\n return -1;\n } : nativeLastIndexOf;\n }, {\n '../internals/array-method-is-strict': 47,\n '../internals/array-method-uses-to-length': 48,\n '../internals/to-indexed-object': 113,\n '../internals/to-integer': 114,\n '../internals/to-length': 115\n }],\n 47: [function (_dereq_, module, exports) {\n 'use strict';\n\n var fails = _dereq_('../internals/fails');\n\n module.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n method.call(null, argument || function () {\n throw 1;\n }, 1);\n });\n };\n }, {\n '../internals/fails': 64\n }],\n 48: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var fails = _dereq_('../internals/fails');\n\n var has = _dereq_('../internals/has');\n\n var defineProperty = Object.defineProperty;\n var cache = {};\n\n var thrower = function thrower(it) {\n throw it;\n };\n\n module.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) {\n return cache[METHOD_NAME];\n }\n\n if (!options) {\n options = {};\n }\n\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) {\n return true;\n }\n\n var O = {\n length: -1\n };\n\n if (ACCESSORS) {\n defineProperty(O, 1, {\n enumerable: true,\n get: thrower\n });\n } else {\n O[1] = 1;\n }\n\n method.call(O, argument0, argument1);\n });\n };\n }, {\n '../internals/descriptors': 60,\n '../internals/fails': 64,\n '../internals/has': 69\n }],\n 49: [function (_dereq_, module, exports) {\n var aFunction = _dereq_('../internals/a-function');\n\n var toObject = _dereq_('../internals/to-object');\n\n var IndexedObject = _dereq_('../internals/indexed-object');\n\n var toLength = _dereq_('../internals/to-length');\n\n var createMethod = function createMethod(IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n\n if (argumentsLength < 2) {\n while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n\n index += i;\n\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n }\n\n for (; IS_RIGHT ? index >= 0 : length > index; index += i) {\n if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n }\n\n return memo;\n };\n };\n\n module.exports = {\n left: createMethod(false),\n right: createMethod(true)\n };\n }, {\n '../internals/a-function': 34,\n '../internals/indexed-object': 74,\n '../internals/to-length': 115,\n '../internals/to-object': 116\n }],\n 50: [function (_dereq_, module, exports) {\n var isObject = _dereq_('../internals/is-object');\n\n var isArray = _dereq_('../internals/is-array');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var SPECIES = wellKnownSymbol('species');\n\n module.exports = function (originalArray, length) {\n var C;\n\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) {\n C = undefined;\n } else if (isObject(C)) {\n C = C[SPECIES];\n\n if (C === null) {\n C = undefined;\n }\n }\n }\n\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n };\n }, {\n '../internals/is-array': 79,\n '../internals/is-object': 81,\n '../internals/well-known-symbol': 126\n }],\n 51: [function (_dereq_, module, exports) {\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var ITERATOR = wellKnownSymbol('iterator');\n var SAFE_CLOSING = false;\n\n try {\n var called = 0;\n var iteratorWithReturn = {\n next: function next() {\n return {\n done: !!called++\n };\n },\n return: function _return() {\n SAFE_CLOSING = true;\n }\n };\n\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n } catch (error) {}\n\n module.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) {\n return false;\n }\n\n var ITERATION_SUPPORT = false;\n\n try {\n var object = {};\n\n object[ITERATOR] = function () {\n return {\n next: function next() {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n\n exec(object);\n } catch (error) {}\n\n return ITERATION_SUPPORT;\n };\n }, {\n '../internals/well-known-symbol': 126\n }],\n 52: [function (_dereq_, module, exports) {\n var toString = {}.toString;\n\n module.exports = function (it) {\n return toString.call(it).slice(8, -1);\n };\n }, {}],\n 53: [function (_dereq_, module, exports) {\n var TO_STRING_TAG_SUPPORT = _dereq_('../internals/to-string-tag-support');\n\n var classofRaw = _dereq_('../internals/classof-raw');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n var CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n }()) == 'Arguments';\n\n var tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (error) {}\n };\n\n module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n };\n }, {\n '../internals/classof-raw': 52,\n '../internals/to-string-tag-support': 120,\n '../internals/well-known-symbol': 126\n }],\n 54: [function (_dereq_, module, exports) {\n var has = _dereq_('../internals/has');\n\n var ownKeys = _dereq_('../internals/own-keys');\n\n var getOwnPropertyDescriptorModule = _dereq_('../internals/object-get-own-property-descriptor');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n module.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (!has(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n };\n }, {\n '../internals/has': 69,\n '../internals/object-define-property': 89,\n '../internals/object-get-own-property-descriptor': 90,\n '../internals/own-keys': 99\n }],\n 55: [function (_dereq_, module, exports) {\n var fails = _dereq_('../internals/fails');\n\n module.exports = !fails(function () {\n function F() {}\n\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n });\n }, {\n '../internals/fails': 64\n }],\n 56: [function (_dereq_, module, exports) {\n 'use strict';\n\n var IteratorPrototype = _dereq_('../internals/iterators-core').IteratorPrototype;\n\n var create = _dereq_('../internals/object-create');\n\n var createPropertyDescriptor = _dereq_('../internals/create-property-descriptor');\n\n var setToStringTag = _dereq_('../internals/set-to-string-tag');\n\n var Iterators = _dereq_('../internals/iterators');\n\n var returnThis = function returnThis() {\n return this;\n };\n\n module.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, {\n next: createPropertyDescriptor(1, next)\n });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n };\n }, {\n '../internals/create-property-descriptor': 58,\n '../internals/iterators': 84,\n '../internals/iterators-core': 83,\n '../internals/object-create': 87,\n '../internals/set-to-string-tag': 106\n }],\n 57: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n var createPropertyDescriptor = _dereq_('../internals/create-property-descriptor');\n\n module.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n } : function (object, key, value) {\n object[key] = value;\n return object;\n };\n }, {\n '../internals/create-property-descriptor': 58,\n '../internals/descriptors': 60,\n '../internals/object-define-property': 89\n }],\n 58: [function (_dereq_, module, exports) {\n module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n }, {}],\n 59: [function (_dereq_, module, exports) {\n 'use strict';\n\n var $ = _dereq_('../internals/export');\n\n var createIteratorConstructor = _dereq_('../internals/create-iterator-constructor');\n\n var getPrototypeOf = _dereq_('../internals/object-get-prototype-of');\n\n var setPrototypeOf = _dereq_('../internals/object-set-prototype-of');\n\n var setToStringTag = _dereq_('../internals/set-to-string-tag');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var redefine = _dereq_('../internals/redefine');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var IS_PURE = _dereq_('../internals/is-pure');\n\n var Iterators = _dereq_('../internals/iterators');\n\n var IteratorsCore = _dereq_('../internals/iterators-core');\n\n var IteratorPrototype = IteratorsCore.IteratorPrototype;\n var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\n var ITERATOR = wellKnownSymbol('iterator');\n var KEYS = 'keys';\n var VALUES = 'values';\n var ENTRIES = 'entries';\n\n var returnThis = function returnThis() {\n return this;\n };\n\n module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function getIterationMethod(KIND) {\n if (KIND === DEFAULT && defaultIterator) {\n return defaultIterator;\n }\n\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) {\n return IterablePrototype[KIND];\n }\n\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n\n return function () {\n return new IteratorConstructor(this);\n };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n\n if (IS_PURE) {\n Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n }\n\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n\n defaultIterator = function values() {\n return nativeIterator.call(this);\n };\n }\n\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n\n Iterators[NAME] = defaultIterator;\n\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n\n if (FORCED) {\n for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n }\n } else {\n $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n }\n\n return methods;\n };\n }, {\n '../internals/create-iterator-constructor': 56,\n '../internals/create-non-enumerable-property': 57,\n '../internals/export': 63,\n '../internals/is-pure': 82,\n '../internals/iterators': 84,\n '../internals/iterators-core': 83,\n '../internals/object-get-prototype-of': 93,\n '../internals/object-set-prototype-of': 97,\n '../internals/redefine': 102,\n '../internals/set-to-string-tag': 106,\n '../internals/well-known-symbol': 126\n }],\n 60: [function (_dereq_, module, exports) {\n var fails = _dereq_('../internals/fails');\n\n module.exports = !fails(function () {\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n });\n }, {\n '../internals/fails': 64\n }],\n 61: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var isObject = _dereq_('../internals/is-object');\n\n var document = global.document;\n var EXISTS = isObject(document) && isObject(document.createElement);\n\n module.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n };\n }, {\n '../internals/global': 68,\n '../internals/is-object': 81\n }],\n 62: [function (_dereq_, module, exports) {\n module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];\n }, {}],\n 63: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var getOwnPropertyDescriptor = _dereq_('../internals/object-get-own-property-descriptor').f;\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var redefine = _dereq_('../internals/redefine');\n\n var setGlobal = _dereq_('../internals/set-global');\n\n var copyConstructorProperties = _dereq_('../internals/copy-constructor-properties');\n\n var isForced = _dereq_('../internals/is-forced');\n\n module.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n\n if (target) {\n for (key in source) {\n sourceProperty = source[key];\n\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else {\n targetProperty = target[key];\n }\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) {\n continue;\n }\n\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n\n redefine(target, key, sourceProperty, options);\n }\n }\n };\n }, {\n '../internals/copy-constructor-properties': 54,\n '../internals/create-non-enumerable-property': 57,\n '../internals/global': 68,\n '../internals/is-forced': 80,\n '../internals/object-get-own-property-descriptor': 90,\n '../internals/redefine': 102,\n '../internals/set-global': 104\n }],\n 64: [function (_dereq_, module, exports) {\n module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n };\n }, {}],\n 65: [function (_dereq_, module, exports) {\n var aFunction = _dereq_('../internals/a-function');\n\n module.exports = function (fn, that, length) {\n aFunction(fn);\n\n if (that === undefined) {\n return fn;\n }\n\n switch (length) {\n case 0:\n return function () {\n return fn.call(that);\n };\n\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function () {\n return fn.apply(that, arguments);\n };\n };\n }, {\n '../internals/a-function': 34\n }],\n 66: [function (_dereq_, module, exports) {\n var path = _dereq_('../internals/path');\n\n var global = _dereq_('../internals/global');\n\n var aFunction = function aFunction(variable) {\n return typeof variable == 'function' ? variable : undefined;\n };\n\n module.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n };\n }, {\n '../internals/global': 68,\n '../internals/path': 100\n }],\n 67: [function (_dereq_, module, exports) {\n var classof = _dereq_('../internals/classof');\n\n var Iterators = _dereq_('../internals/iterators');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var ITERATOR = wellKnownSymbol('iterator');\n\n module.exports = function (it) {\n if (it != undefined) {\n return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n }\n };\n }, {\n '../internals/classof': 53,\n '../internals/iterators': 84,\n '../internals/well-known-symbol': 126\n }],\n 68: [function (_dereq_, module, exports) {\n (function (global) {\n var check = function check(it) {\n return it && it.Math == Math && it;\n };\n\n module.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || Function('return this')();\n }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});\n }, {}],\n 69: [function (_dereq_, module, exports) {\n var hasOwnProperty = {}.hasOwnProperty;\n\n module.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n };\n }, {}],\n 70: [function (_dereq_, module, exports) {\n module.exports = {};\n }, {}],\n 71: [function (_dereq_, module, exports) {\n var getBuiltIn = _dereq_('../internals/get-built-in');\n\n module.exports = getBuiltIn('document', 'documentElement');\n }, {\n '../internals/get-built-in': 66\n }],\n 72: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var fails = _dereq_('../internals/fails');\n\n var createElement = _dereq_('../internals/document-create-element');\n\n module.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n }, {\n '../internals/descriptors': 60,\n '../internals/document-create-element': 61,\n '../internals/fails': 64\n }],\n 73: [function (_dereq_, module, exports) {\n var Infinity = 1 / 0;\n var abs = Math.abs;\n var pow = Math.pow;\n var floor = Math.floor;\n var log = Math.log;\n var LN2 = Math.LN2;\n\n var pack = function pack(number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n\n if (number != number || number === Infinity) {\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8) {}\n\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8) {}\n\n buffer[--index] |= sign * 128;\n return buffer;\n };\n\n var unpack = function unpack(buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8) {}\n\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8) {}\n\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n }\n\n return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n };\n\n module.exports = {\n pack: pack,\n unpack: unpack\n };\n }, {}],\n 74: [function (_dereq_, module, exports) {\n var fails = _dereq_('../internals/fails');\n\n var classof = _dereq_('../internals/classof-raw');\n\n var split = ''.split;\n module.exports = fails(function () {\n return !Object('z').propertyIsEnumerable(0);\n }) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n } : Object;\n }, {\n '../internals/classof-raw': 52,\n '../internals/fails': 64\n }],\n 75: [function (_dereq_, module, exports) {\n var isObject = _dereq_('../internals/is-object');\n\n var setPrototypeOf = _dereq_('../internals/object-set-prototype-of');\n\n module.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n\n if (setPrototypeOf && typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) {\n setPrototypeOf($this, NewTargetPrototype);\n }\n\n return $this;\n };\n }, {\n '../internals/is-object': 81,\n '../internals/object-set-prototype-of': 97\n }],\n 76: [function (_dereq_, module, exports) {\n var store = _dereq_('../internals/shared-store');\n\n var functionToString = Function.toString;\n\n if (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n }\n\n module.exports = store.inspectSource;\n }, {\n '../internals/shared-store': 108\n }],\n 77: [function (_dereq_, module, exports) {\n var NATIVE_WEAK_MAP = _dereq_('../internals/native-weak-map');\n\n var global = _dereq_('../internals/global');\n\n var isObject = _dereq_('../internals/is-object');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var objectHas = _dereq_('../internals/has');\n\n var sharedKey = _dereq_('../internals/shared-key');\n\n var hiddenKeys = _dereq_('../internals/hidden-keys');\n\n var WeakMap = global.WeakMap;\n var set, get, has;\n\n var enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n };\n\n var getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n };\n\n if (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n\n set = function set(it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return wmget.call(store, it) || {};\n };\n\n has = function has(it) {\n return wmhas.call(store, it);\n };\n } else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function set(it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n\n has = function has(it) {\n return objectHas(it, STATE);\n };\n }\n\n module.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n };\n }, {\n '../internals/create-non-enumerable-property': 57,\n '../internals/global': 68,\n '../internals/has': 69,\n '../internals/hidden-keys': 70,\n '../internals/is-object': 81,\n '../internals/native-weak-map': 86,\n '../internals/shared-key': 107\n }],\n 78: [function (_dereq_, module, exports) {\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var Iterators = _dereq_('../internals/iterators');\n\n var ITERATOR = wellKnownSymbol('iterator');\n var ArrayPrototype = Array.prototype;\n\n module.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n };\n }, {\n '../internals/iterators': 84,\n '../internals/well-known-symbol': 126\n }],\n 79: [function (_dereq_, module, exports) {\n var classof = _dereq_('../internals/classof-raw');\n\n module.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n };\n }, {\n '../internals/classof-raw': 52\n }],\n 80: [function (_dereq_, module, exports) {\n var fails = _dereq_('../internals/fails');\n\n var replacement = /#|\\.prototype\\./;\n\n var isForced = function isForced(feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;\n };\n\n var normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n };\n\n var data = isForced.data = {};\n var NATIVE = isForced.NATIVE = 'N';\n var POLYFILL = isForced.POLYFILL = 'P';\n module.exports = isForced;\n }, {\n '../internals/fails': 64\n }],\n 81: [function (_dereq_, module, exports) {\n module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n };\n }, {}],\n 82: [function (_dereq_, module, exports) {\n module.exports = false;\n }, {}],\n 83: [function (_dereq_, module, exports) {\n 'use strict';\n\n var getPrototypeOf = _dereq_('../internals/object-get-prototype-of');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var has = _dereq_('../internals/has');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var IS_PURE = _dereq_('../internals/is-pure');\n\n var ITERATOR = wellKnownSymbol('iterator');\n var BUGGY_SAFARI_ITERATORS = false;\n\n var returnThis = function returnThis() {\n return this;\n };\n\n var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n if ([].keys) {\n arrayIterator = [].keys();\n\n if (!('next' in arrayIterator)) {\n BUGGY_SAFARI_ITERATORS = true;\n } else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) {\n IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n }\n }\n\n if (IteratorPrototype == undefined) {\n IteratorPrototype = {};\n }\n\n if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n }\n\n module.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n };\n }, {\n '../internals/create-non-enumerable-property': 57,\n '../internals/has': 69,\n '../internals/is-pure': 82,\n '../internals/object-get-prototype-of': 93,\n '../internals/well-known-symbol': 126\n }],\n 84: [function (_dereq_, module, exports) {\n arguments[4][70][0].apply(exports, arguments);\n }, {\n dup: 70\n }],\n 85: [function (_dereq_, module, exports) {\n var fails = _dereq_('../internals/fails');\n\n module.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol());\n });\n }, {\n '../internals/fails': 64\n }],\n 86: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var inspectSource = _dereq_('../internals/inspect-source');\n\n var WeakMap = global.WeakMap;\n module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n }, {\n '../internals/global': 68,\n '../internals/inspect-source': 76\n }],\n 87: [function (_dereq_, module, exports) {\n var anObject = _dereq_('../internals/an-object');\n\n var defineProperties = _dereq_('../internals/object-define-properties');\n\n var enumBugKeys = _dereq_('../internals/enum-bug-keys');\n\n var hiddenKeys = _dereq_('../internals/hidden-keys');\n\n var html = _dereq_('../internals/html');\n\n var documentCreateElement = _dereq_('../internals/document-create-element');\n\n var sharedKey = _dereq_('../internals/shared-key');\n\n var GT = '>';\n var LT = '<';\n var PROTOTYPE = 'prototype';\n var SCRIPT = 'script';\n var IE_PROTO = sharedKey('IE_PROTO');\n\n var EmptyConstructor = function EmptyConstructor() {};\n\n var scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n };\n\n var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null;\n return temp;\n };\n\n var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n };\n\n var activeXDocument;\n\n var _NullProtoObject = function NullProtoObject() {\n try {\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) {}\n\n _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n\n while (length--) {\n delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n }\n\n return _NullProtoObject();\n };\n\n hiddenKeys[IE_PROTO] = true;\n\n module.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else {\n result = _NullProtoObject();\n }\n\n return Properties === undefined ? result : defineProperties(result, Properties);\n };\n }, {\n '../internals/an-object': 38,\n '../internals/document-create-element': 61,\n '../internals/enum-bug-keys': 62,\n '../internals/hidden-keys': 70,\n '../internals/html': 71,\n '../internals/object-define-properties': 88,\n '../internals/shared-key': 107\n }],\n 88: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n var anObject = _dereq_('../internals/an-object');\n\n var objectKeys = _dereq_('../internals/object-keys');\n\n module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n\n while (length > index) {\n definePropertyModule.f(O, key = keys[index++], Properties[key]);\n }\n\n return O;\n };\n }, {\n '../internals/an-object': 38,\n '../internals/descriptors': 60,\n '../internals/object-define-property': 89,\n '../internals/object-keys': 95\n }],\n 89: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var IE8_DOM_DEFINE = _dereq_('../internals/ie8-dom-define');\n\n var anObject = _dereq_('../internals/an-object');\n\n var toPrimitive = _dereq_('../internals/to-primitive');\n\n var nativeDefineProperty = Object.defineProperty;\n exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n\n if (IE8_DOM_DEFINE) {\n try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) {}\n }\n\n if ('get' in Attributes || 'set' in Attributes) {\n throw TypeError('Accessors not supported');\n }\n\n if ('value' in Attributes) {\n O[P] = Attributes.value;\n }\n\n return O;\n };\n }, {\n '../internals/an-object': 38,\n '../internals/descriptors': 60,\n '../internals/ie8-dom-define': 72,\n '../internals/to-primitive': 119\n }],\n 90: [function (_dereq_, module, exports) {\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var propertyIsEnumerableModule = _dereq_('../internals/object-property-is-enumerable');\n\n var createPropertyDescriptor = _dereq_('../internals/create-property-descriptor');\n\n var toIndexedObject = _dereq_('../internals/to-indexed-object');\n\n var toPrimitive = _dereq_('../internals/to-primitive');\n\n var has = _dereq_('../internals/has');\n\n var IE8_DOM_DEFINE = _dereq_('../internals/ie8-dom-define');\n\n var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n\n if (IE8_DOM_DEFINE) {\n try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) {}\n }\n\n if (has(O, P)) {\n return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n }\n };\n }, {\n '../internals/create-property-descriptor': 58,\n '../internals/descriptors': 60,\n '../internals/has': 69,\n '../internals/ie8-dom-define': 72,\n '../internals/object-property-is-enumerable': 96,\n '../internals/to-indexed-object': 113,\n '../internals/to-primitive': 119\n }],\n 91: [function (_dereq_, module, exports) {\n var internalObjectKeys = _dereq_('../internals/object-keys-internal');\n\n var enumBugKeys = _dereq_('../internals/enum-bug-keys');\n\n var hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n };\n }, {\n '../internals/enum-bug-keys': 62,\n '../internals/object-keys-internal': 94\n }],\n 92: [function (_dereq_, module, exports) {\n exports.f = Object.getOwnPropertySymbols;\n }, {}],\n 93: [function (_dereq_, module, exports) {\n var has = _dereq_('../internals/has');\n\n var toObject = _dereq_('../internals/to-object');\n\n var sharedKey = _dereq_('../internals/shared-key');\n\n var CORRECT_PROTOTYPE_GETTER = _dereq_('../internals/correct-prototype-getter');\n\n var IE_PROTO = sharedKey('IE_PROTO');\n var ObjectPrototype = Object.prototype;\n module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n\n if (has(O, IE_PROTO)) {\n return O[IE_PROTO];\n }\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectPrototype : null;\n };\n }, {\n '../internals/correct-prototype-getter': 55,\n '../internals/has': 69,\n '../internals/shared-key': 107,\n '../internals/to-object': 116\n }],\n 94: [function (_dereq_, module, exports) {\n var has = _dereq_('../internals/has');\n\n var toIndexedObject = _dereq_('../internals/to-indexed-object');\n\n var indexOf = _dereq_('../internals/array-includes').indexOf;\n\n var hiddenKeys = _dereq_('../internals/hidden-keys');\n\n module.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n !has(hiddenKeys, key) && has(O, key) && result.push(key);\n }\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n };\n }, {\n '../internals/array-includes': 44,\n '../internals/has': 69,\n '../internals/hidden-keys': 70,\n '../internals/to-indexed-object': 113\n }],\n 95: [function (_dereq_, module, exports) {\n var internalObjectKeys = _dereq_('../internals/object-keys-internal');\n\n var enumBugKeys = _dereq_('../internals/enum-bug-keys');\n\n module.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n };\n }, {\n '../internals/enum-bug-keys': 62,\n '../internals/object-keys-internal': 94\n }],\n 96: [function (_dereq_, module, exports) {\n 'use strict';\n\n var nativePropertyIsEnumerable = {}.propertyIsEnumerable;\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({\n 1: 2\n }, 1);\n exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n } : nativePropertyIsEnumerable;\n }, {}],\n 97: [function (_dereq_, module, exports) {\n var anObject = _dereq_('../internals/an-object');\n\n var aPossiblePrototype = _dereq_('../internals/a-possible-prototype');\n\n module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {}\n\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n\n if (CORRECT_SETTER) {\n setter.call(O, proto);\n } else {\n O.__proto__ = proto;\n }\n\n return O;\n };\n }() : undefined);\n }, {\n '../internals/a-possible-prototype': 35,\n '../internals/an-object': 38\n }],\n 98: [function (_dereq_, module, exports) {\n 'use strict';\n\n var TO_STRING_TAG_SUPPORT = _dereq_('../internals/to-string-tag-support');\n\n var classof = _dereq_('../internals/classof');\n\n module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n };\n }, {\n '../internals/classof': 53,\n '../internals/to-string-tag-support': 120\n }],\n 99: [function (_dereq_, module, exports) {\n var getBuiltIn = _dereq_('../internals/get-built-in');\n\n var getOwnPropertyNamesModule = _dereq_('../internals/object-get-own-property-names');\n\n var getOwnPropertySymbolsModule = _dereq_('../internals/object-get-own-property-symbols');\n\n var anObject = _dereq_('../internals/an-object');\n\n module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n };\n }, {\n '../internals/an-object': 38,\n '../internals/get-built-in': 66,\n '../internals/object-get-own-property-names': 91,\n '../internals/object-get-own-property-symbols': 92\n }],\n 100: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n module.exports = global;\n }, {\n '../internals/global': 68\n }],\n 101: [function (_dereq_, module, exports) {\n var redefine = _dereq_('../internals/redefine');\n\n module.exports = function (target, src, options) {\n for (var key in src) {\n redefine(target, key, src[key], options);\n }\n\n return target;\n };\n }, {\n '../internals/redefine': 102\n }],\n 102: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var has = _dereq_('../internals/has');\n\n var setGlobal = _dereq_('../internals/set-global');\n\n var inspectSource = _dereq_('../internals/inspect-source');\n\n var InternalStateModule = _dereq_('../internals/internal-state');\n\n var getInternalState = InternalStateModule.get;\n var enforceInternalState = InternalStateModule.enforce;\n var TEMPLATE = String(String).split('String');\n (module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n\n if (O === global) {\n if (simple) {\n O[key] = value;\n } else {\n setGlobal(key, value);\n }\n\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n\n if (simple) {\n O[key] = value;\n } else {\n createNonEnumerableProperty(O, key, value);\n }\n })(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n });\n }, {\n '../internals/create-non-enumerable-property': 57,\n '../internals/global': 68,\n '../internals/has': 69,\n '../internals/inspect-source': 76,\n '../internals/internal-state': 77,\n '../internals/set-global': 104\n }],\n 103: [function (_dereq_, module, exports) {\n module.exports = function (it) {\n if (it == undefined) {\n throw TypeError('Can\\'t call method on ' + it);\n }\n\n return it;\n };\n }, {}],\n 104: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n module.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n }\n\n return value;\n };\n }, {\n '../internals/create-non-enumerable-property': 57,\n '../internals/global': 68\n }],\n 105: [function (_dereq_, module, exports) {\n 'use strict';\n\n var getBuiltIn = _dereq_('../internals/get-built-in');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var SPECIES = wellKnownSymbol('species');\n\n module.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n }\n };\n }, {\n '../internals/descriptors': 60,\n '../internals/get-built-in': 66,\n '../internals/object-define-property': 89,\n '../internals/well-known-symbol': 126\n }],\n 106: [function (_dereq_, module, exports) {\n var defineProperty = _dereq_('../internals/object-define-property').f;\n\n var has = _dereq_('../internals/has');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\n module.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n };\n }, {\n '../internals/has': 69,\n '../internals/object-define-property': 89,\n '../internals/well-known-symbol': 126\n }],\n 107: [function (_dereq_, module, exports) {\n var shared = _dereq_('../internals/shared');\n\n var uid = _dereq_('../internals/uid');\n\n var keys = shared('keys');\n\n module.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n };\n }, {\n '../internals/shared': 109,\n '../internals/uid': 124\n }],\n 108: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var setGlobal = _dereq_('../internals/set-global');\n\n var SHARED = '__core-js_shared__';\n var store = global[SHARED] || setGlobal(SHARED, {});\n module.exports = store;\n }, {\n '../internals/global': 68,\n '../internals/set-global': 104\n }],\n 109: [function (_dereq_, module, exports) {\n var IS_PURE = _dereq_('../internals/is-pure');\n\n var store = _dereq_('../internals/shared-store');\n\n (module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n })('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '\\xa9 2020 Denis Pushkarev (zloirock.ru)'\n });\n }, {\n '../internals/is-pure': 82,\n '../internals/shared-store': 108\n }],\n 110: [function (_dereq_, module, exports) {\n var anObject = _dereq_('../internals/an-object');\n\n var aFunction = _dereq_('../internals/a-function');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var SPECIES = wellKnownSymbol('species');\n\n module.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n };\n }, {\n '../internals/a-function': 34,\n '../internals/an-object': 38,\n '../internals/well-known-symbol': 126\n }],\n 111: [function (_dereq_, module, exports) {\n var toInteger = _dereq_('../internals/to-integer');\n\n var max = Math.max;\n var min = Math.min;\n\n module.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n };\n }, {\n '../internals/to-integer': 114\n }],\n 112: [function (_dereq_, module, exports) {\n var toInteger = _dereq_('../internals/to-integer');\n\n var toLength = _dereq_('../internals/to-length');\n\n module.exports = function (it) {\n if (it === undefined) {\n return 0;\n }\n\n var number = toInteger(it);\n var length = toLength(number);\n\n if (number !== length) {\n throw RangeError('Wrong length or index');\n }\n\n return length;\n };\n }, {\n '../internals/to-integer': 114,\n '../internals/to-length': 115\n }],\n 113: [function (_dereq_, module, exports) {\n var IndexedObject = _dereq_('../internals/indexed-object');\n\n var requireObjectCoercible = _dereq_('../internals/require-object-coercible');\n\n module.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n };\n }, {\n '../internals/indexed-object': 74,\n '../internals/require-object-coercible': 103\n }],\n 114: [function (_dereq_, module, exports) {\n var ceil = Math.ceil;\n var floor = Math.floor;\n\n module.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n };\n }, {}],\n 115: [function (_dereq_, module, exports) {\n var toInteger = _dereq_('../internals/to-integer');\n\n var min = Math.min;\n\n module.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0;\n };\n }, {\n '../internals/to-integer': 114\n }],\n 116: [function (_dereq_, module, exports) {\n var requireObjectCoercible = _dereq_('../internals/require-object-coercible');\n\n module.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n };\n }, {\n '../internals/require-object-coercible': 103\n }],\n 117: [function (_dereq_, module, exports) {\n var toPositiveInteger = _dereq_('../internals/to-positive-integer');\n\n module.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n\n if (offset % BYTES) {\n throw RangeError('Wrong offset');\n }\n\n return offset;\n };\n }, {\n '../internals/to-positive-integer': 118\n }],\n 118: [function (_dereq_, module, exports) {\n var toInteger = _dereq_('../internals/to-integer');\n\n module.exports = function (it) {\n var result = toInteger(it);\n\n if (result < 0) {\n throw RangeError('The argument can\\'t be less than 0');\n }\n\n return result;\n };\n }, {\n '../internals/to-integer': 114\n }],\n 119: [function (_dereq_, module, exports) {\n var isObject = _dereq_('../internals/is-object');\n\n module.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) {\n return input;\n }\n\n var fn, val;\n\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) {\n return val;\n }\n\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) {\n return val;\n }\n\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) {\n return val;\n }\n\n throw TypeError('Can\\'t convert object to primitive value');\n };\n }, {\n '../internals/is-object': 81\n }],\n 120: [function (_dereq_, module, exports) {\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n var test = {};\n test[TO_STRING_TAG] = 'z';\n module.exports = String(test) === '[object z]';\n }, {\n '../internals/well-known-symbol': 126\n }],\n 121: [function (_dereq_, module, exports) {\n 'use strict';\n\n var $ = _dereq_('../internals/export');\n\n var global = _dereq_('../internals/global');\n\n var DESCRIPTORS = _dereq_('../internals/descriptors');\n\n var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = _dereq_('../internals/typed-array-constructors-require-wrappers');\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var ArrayBufferModule = _dereq_('../internals/array-buffer');\n\n var anInstance = _dereq_('../internals/an-instance');\n\n var createPropertyDescriptor = _dereq_('../internals/create-property-descriptor');\n\n var createNonEnumerableProperty = _dereq_('../internals/create-non-enumerable-property');\n\n var toLength = _dereq_('../internals/to-length');\n\n var toIndex = _dereq_('../internals/to-index');\n\n var toOffset = _dereq_('../internals/to-offset');\n\n var toPrimitive = _dereq_('../internals/to-primitive');\n\n var has = _dereq_('../internals/has');\n\n var classof = _dereq_('../internals/classof');\n\n var isObject = _dereq_('../internals/is-object');\n\n var create = _dereq_('../internals/object-create');\n\n var setPrototypeOf = _dereq_('../internals/object-set-prototype-of');\n\n var getOwnPropertyNames = _dereq_('../internals/object-get-own-property-names').f;\n\n var typedArrayFrom = _dereq_('../internals/typed-array-from');\n\n var forEach = _dereq_('../internals/array-iteration').forEach;\n\n var setSpecies = _dereq_('../internals/set-species');\n\n var definePropertyModule = _dereq_('../internals/object-define-property');\n\n var getOwnPropertyDescriptorModule = _dereq_('../internals/object-get-own-property-descriptor');\n\n var InternalStateModule = _dereq_('../internals/internal-state');\n\n var inheritIfRequired = _dereq_('../internals/inherit-if-required');\n\n var getInternalState = InternalStateModule.get;\n var setInternalState = InternalStateModule.set;\n var nativeDefineProperty = definePropertyModule.f;\n var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var round = Math.round;\n var RangeError = global.RangeError;\n var ArrayBuffer = ArrayBufferModule.ArrayBuffer;\n var DataView = ArrayBufferModule.DataView;\n var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\n var TypedArray = ArrayBufferViewCore.TypedArray;\n var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\n var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n var isTypedArray = ArrayBufferViewCore.isTypedArray;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var WRONG_LENGTH = 'Wrong length';\n\n var fromList = function fromList(C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n\n while (length > index) {\n result[index] = list[index++];\n }\n\n return result;\n };\n\n var addGetter = function addGetter(it, key) {\n nativeDefineProperty(it, key, {\n get: function get() {\n return getInternalState(this)[key];\n }\n });\n };\n\n var isArrayBuffer = function isArrayBuffer(it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n };\n\n var isTypedArrayIndex = function isTypedArrayIndex(target, key) {\n return isTypedArray(target) && typeof key != 'symbol' && key in target && String(+key) == String(key);\n };\n\n var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true)) ? createPropertyDescriptor(2, target[key]) : nativeGetOwnPropertyDescriptor(target, key);\n };\n\n var wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true)) && isObject(descriptor) && has(descriptor, 'value') && !has(descriptor, 'get') && !has(descriptor, 'set') && !descriptor.configurable && (!has(descriptor, 'writable') || descriptor.writable) && (!has(descriptor, 'enumerable') || descriptor.enumerable)) {\n target[key] = descriptor.value;\n return target;\n }\n\n return nativeDefineProperty(target, key, descriptor);\n };\n\n if (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({\n target: 'Object',\n stat: true,\n forced: !NATIVE_ARRAY_BUFFER_VIEWS\n }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function getter(that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function setter(that, index, value) {\n var data = getInternalState(that);\n\n if (CLAMPED) {\n value = (value = round(value)) < 0 ? 0 : value > 255 ? 255 : value & 255;\n }\n\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function addElement(that, index) {\n nativeDefineProperty(that, index, {\n get: function get() {\n return getter(this, index);\n },\n set: function set(value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n\n if ($length === undefined) {\n if ($len % BYTES) {\n throw RangeError(WRONG_LENGTH);\n }\n\n byteLength = $len - byteOffset;\n\n if (byteLength < 0) {\n throw RangeError(WRONG_LENGTH);\n }\n } else {\n byteLength = toLength($length) * BYTES;\n\n if (byteLength + byteOffset > $len) {\n throw RangeError(WRONG_LENGTH);\n }\n }\n\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n\n while (index < length) {\n addElement(that, index++);\n }\n });\n\n if (setPrototypeOf) {\n setPrototypeOf(TypedArrayConstructor, TypedArray);\n }\n\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) {\n return new NativeTypedArrayConstructor(toIndex(data));\n }\n\n if (isArrayBuffer(data)) {\n return $length !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) : typedArrayOffset !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) : new NativeTypedArrayConstructor(data);\n }\n\n if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n }\n\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) {\n setPrototypeOf(TypedArrayConstructor, TypedArray);\n }\n\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n $({\n global: true,\n forced: TypedArrayConstructor != NativeTypedArrayConstructor,\n sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n } else {\n module.exports = function () {};\n }\n }, {\n '../internals/an-instance': 37,\n '../internals/array-buffer': 41,\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45,\n '../internals/classof': 53,\n '../internals/create-non-enumerable-property': 57,\n '../internals/create-property-descriptor': 58,\n '../internals/descriptors': 60,\n '../internals/export': 63,\n '../internals/global': 68,\n '../internals/has': 69,\n '../internals/inherit-if-required': 75,\n '../internals/internal-state': 77,\n '../internals/is-object': 81,\n '../internals/object-create': 87,\n '../internals/object-define-property': 89,\n '../internals/object-get-own-property-descriptor': 90,\n '../internals/object-get-own-property-names': 91,\n '../internals/object-set-prototype-of': 97,\n '../internals/set-species': 105,\n '../internals/to-index': 112,\n '../internals/to-length': 115,\n '../internals/to-offset': 117,\n '../internals/to-primitive': 119,\n '../internals/typed-array-constructors-require-wrappers': 122,\n '../internals/typed-array-from': 123\n }],\n 122: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var fails = _dereq_('../internals/fails');\n\n var checkCorrectnessOfIteration = _dereq_('../internals/check-correctness-of-iteration');\n\n var NATIVE_ARRAY_BUFFER_VIEWS = _dereq_('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\n var ArrayBuffer = global.ArrayBuffer;\n var Int8Array = global.Int8Array;\n module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n }) || !fails(function () {\n new Int8Array(-1);\n }) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n }, true) || fails(function () {\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/check-correctness-of-iteration': 51,\n '../internals/fails': 64,\n '../internals/global': 68\n }],\n 123: [function (_dereq_, module, exports) {\n var toObject = _dereq_('../internals/to-object');\n\n var toLength = _dereq_('../internals/to-length');\n\n var getIteratorMethod = _dereq_('../internals/get-iterator-method');\n\n var isArrayIteratorMethod = _dereq_('../internals/is-array-iterator-method');\n\n var bind = _dereq_('../internals/function-bind-context');\n\n var aTypedArrayConstructor = _dereq_('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\n module.exports = function from(source) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n\n return result;\n };\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/function-bind-context': 65,\n '../internals/get-iterator-method': 67,\n '../internals/is-array-iterator-method': 78,\n '../internals/to-length': 115,\n '../internals/to-object': 116\n }],\n 124: [function (_dereq_, module, exports) {\n var id = 0;\n var postfix = Math.random();\n\n module.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n };\n }, {}],\n 125: [function (_dereq_, module, exports) {\n var NATIVE_SYMBOL = _dereq_('../internals/native-symbol');\n\n module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n }, {\n '../internals/native-symbol': 85\n }],\n 126: [function (_dereq_, module, exports) {\n var global = _dereq_('../internals/global');\n\n var shared = _dereq_('../internals/shared');\n\n var has = _dereq_('../internals/has');\n\n var uid = _dereq_('../internals/uid');\n\n var NATIVE_SYMBOL = _dereq_('../internals/native-symbol');\n\n var USE_SYMBOL_AS_UID = _dereq_('../internals/use-symbol-as-uid');\n\n var WellKnownSymbolsStore = shared('wks');\n var Symbol = global.Symbol;\n var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\n module.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n }\n\n return WellKnownSymbolsStore[name];\n };\n }, {\n '../internals/global': 68,\n '../internals/has': 69,\n '../internals/native-symbol': 85,\n '../internals/shared': 109,\n '../internals/uid': 124,\n '../internals/use-symbol-as-uid': 125\n }],\n 127: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toIndexedObject = _dereq_('../internals/to-indexed-object');\n\n var addToUnscopables = _dereq_('../internals/add-to-unscopables');\n\n var Iterators = _dereq_('../internals/iterators');\n\n var InternalStateModule = _dereq_('../internals/internal-state');\n\n var defineIterator = _dereq_('../internals/define-iterator');\n\n var ARRAY_ITERATOR = 'Array Iterator';\n var setInternalState = InternalStateModule.set;\n var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n module.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n index: 0,\n kind: kind\n });\n }, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n\n if (kind == 'keys') {\n return {\n value: index,\n done: false\n };\n }\n\n if (kind == 'values') {\n return {\n value: target[index],\n done: false\n };\n }\n\n return {\n value: [index, target[index]],\n done: false\n };\n }, 'values');\n Iterators.Arguments = Iterators.Array;\n addToUnscopables('keys');\n addToUnscopables('values');\n addToUnscopables('entries');\n }, {\n '../internals/add-to-unscopables': 36,\n '../internals/define-iterator': 59,\n '../internals/internal-state': 77,\n '../internals/iterators': 84,\n '../internals/to-indexed-object': 113\n }],\n 128: [function (_dereq_, module, exports) {\n var TO_STRING_TAG_SUPPORT = _dereq_('../internals/to-string-tag-support');\n\n var redefine = _dereq_('../internals/redefine');\n\n var toString = _dereq_('../internals/object-to-string');\n\n if (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, {\n unsafe: true\n });\n }\n }, {\n '../internals/object-to-string': 98,\n '../internals/redefine': 102,\n '../internals/to-string-tag-support': 120\n }],\n 129: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $copyWithin = _dereq_('../internals/array-copy-within');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('copyWithin', function copyWithin(target, start) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-copy-within': 42\n }],\n 130: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $every = _dereq_('../internals/array-iteration').every;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('every', function every(callbackfn) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45\n }],\n 131: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $fill = _dereq_('../internals/array-fill');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('fill', function fill(value) {\n return $fill.apply(aTypedArray(this), arguments);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-fill': 43\n }],\n 132: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $filter = _dereq_('../internals/array-iteration').filter;\n\n var speciesConstructor = _dereq_('../internals/species-constructor');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('filter', function filter(callbackfn) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n\n while (length > index) {\n result[index] = list[index++];\n }\n\n return result;\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45,\n '../internals/species-constructor': 110\n }],\n 133: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $findIndex = _dereq_('../internals/array-iteration').findIndex;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('findIndex', function findIndex(predicate) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45\n }],\n 134: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $find = _dereq_('../internals/array-iteration').find;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('find', function find(predicate) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45\n }],\n 135: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $forEach = _dereq_('../internals/array-iteration').forEach;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('forEach', function forEach(callbackfn) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45\n }],\n 136: [function (_dereq_, module, exports) {\n 'use strict';\n\n var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = _dereq_('../internals/typed-array-constructors-require-wrappers');\n\n var exportTypedArrayStaticMethod = _dereq_('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\n\n var typedArrayFrom = _dereq_('../internals/typed-array-from');\n\n exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/typed-array-constructors-require-wrappers': 122,\n '../internals/typed-array-from': 123\n }],\n 137: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $includes = _dereq_('../internals/array-includes').includes;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('includes', function includes(searchElement) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-includes': 44\n }],\n 138: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $indexOf = _dereq_('../internals/array-includes').indexOf;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('indexOf', function indexOf(searchElement) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-includes': 44\n }],\n 139: [function (_dereq_, module, exports) {\n 'use strict';\n\n var global = _dereq_('../internals/global');\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var ArrayIterators = _dereq_('../modules/es.array.iterator');\n\n var wellKnownSymbol = _dereq_('../internals/well-known-symbol');\n\n var ITERATOR = wellKnownSymbol('iterator');\n var Uint8Array = global.Uint8Array;\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n var CORRECT_ITER_NAME = !!nativeTypedArrayIterator && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\n var typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n };\n\n exportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n });\n exportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n });\n exportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n exportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/global': 68,\n '../internals/well-known-symbol': 126,\n '../modules/es.array.iterator': 127\n }],\n 140: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var $join = [].join;\n exportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n });\n }, {\n '../internals/array-buffer-view-core': 40\n }],\n 141: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $lastIndexOf = _dereq_('../internals/array-last-index-of');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-last-index-of': 46\n }],\n 142: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $map = _dereq_('../internals/array-iteration').map;\n\n var speciesConstructor = _dereq_('../internals/species-constructor');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('map', function map(mapfn) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45,\n '../internals/species-constructor': 110\n }],\n 143: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = _dereq_('../internals/typed-array-constructors-require-wrappers');\n\n var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n exportTypedArrayStaticMethod('of', function of() {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n\n while (length > index) {\n result[index] = arguments[index++];\n }\n\n return result;\n }, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/typed-array-constructors-require-wrappers': 122\n }],\n 144: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $reduceRight = _dereq_('../internals/array-reduce').right;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-reduce': 49\n }],\n 145: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $reduce = _dereq_('../internals/array-reduce').left;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('reduce', function reduce(callbackfn) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-reduce': 49\n }],\n 146: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var floor = Math.floor;\n exportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n }\n\n return that;\n });\n }, {\n '../internals/array-buffer-view-core': 40\n }],\n 147: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var toLength = _dereq_('../internals/to-length');\n\n var toOffset = _dereq_('../internals/to-offset');\n\n var toObject = _dereq_('../internals/to-object');\n\n var fails = _dereq_('../internals/fails');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var FORCED = fails(function () {\n new Int8Array(1).set({});\n });\n exportTypedArrayMethod('set', function set(arrayLike) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n\n if (len + offset > length) {\n throw RangeError('Wrong length');\n }\n\n while (index < len) {\n this[offset + index] = src[index++];\n }\n }, FORCED);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/fails': 64,\n '../internals/to-length': 115,\n '../internals/to-object': 116,\n '../internals/to-offset': 117\n }],\n 148: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var speciesConstructor = _dereq_('../internals/species-constructor');\n\n var fails = _dereq_('../internals/fails');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var $slice = [].slice;\n var FORCED = fails(function () {\n new Int8Array(1).slice();\n });\n exportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n\n while (length > index) {\n result[index] = list[index++];\n }\n\n return result;\n }, FORCED);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/fails': 64,\n '../internals/species-constructor': 110\n }],\n 149: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var $some = _dereq_('../internals/array-iteration').some;\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('some', function some(callbackfn) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/array-iteration': 45\n }],\n 150: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var $sort = [].sort;\n exportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n });\n }, {\n '../internals/array-buffer-view-core': 40\n }],\n 151: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var toLength = _dereq_('../internals/to-length');\n\n var toAbsoluteIndex = _dereq_('../internals/to-absolute-index');\n\n var speciesConstructor = _dereq_('../internals/species-constructor');\n\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n exportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(O.buffer, O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex));\n });\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/species-constructor': 110,\n '../internals/to-absolute-index': 111,\n '../internals/to-length': 115\n }],\n 152: [function (_dereq_, module, exports) {\n 'use strict';\n\n var global = _dereq_('../internals/global');\n\n var ArrayBufferViewCore = _dereq_('../internals/array-buffer-view-core');\n\n var fails = _dereq_('../internals/fails');\n\n var Int8Array = global.Int8Array;\n var aTypedArray = ArrayBufferViewCore.aTypedArray;\n var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n var $toLocaleString = [].toLocaleString;\n var $slice = [].slice;\n var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n });\n var FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n }) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n });\n exportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n }, FORCED);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/fails': 64,\n '../internals/global': 68\n }],\n 153: [function (_dereq_, module, exports) {\n 'use strict';\n\n var exportTypedArrayMethod = _dereq_('../internals/array-buffer-view-core').exportTypedArrayMethod;\n\n var fails = _dereq_('../internals/fails');\n\n var global = _dereq_('../internals/global');\n\n var Uint8Array = global.Uint8Array;\n var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\n var arrayToString = [].toString;\n var arrayJoin = [].join;\n\n if (fails(function () {\n arrayToString.call({});\n })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n }, {\n '../internals/array-buffer-view-core': 40,\n '../internals/fails': 64,\n '../internals/global': 68\n }],\n 154: [function (_dereq_, module, exports) {\n var createTypedArrayConstructor = _dereq_('../internals/typed-array-constructor');\n\n createTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n });\n }, {\n '../internals/typed-array-constructor': 121\n }],\n 155: [function (_dereq_, module, exports) {\n module.exports = {\n CssSelectorParser: _dereq_('./lib/css-selector-parser.js').CssSelectorParser\n };\n }, {\n './lib/css-selector-parser.js': 156\n }],\n 156: [function (_dereq_, module, exports) {\n function CssSelectorParser() {\n this.pseudos = {};\n this.attrEqualityMods = {};\n this.ruleNestingOperators = {};\n this.substitutesEnabled = false;\n }\n\n CssSelectorParser.prototype.registerSelectorPseudos = function (name) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n name = arguments[j];\n this.pseudos[name] = 'selector';\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.unregisterSelectorPseudos = function (name) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n name = arguments[j];\n delete this.pseudos[name];\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.registerNumericPseudos = function (name) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n name = arguments[j];\n this.pseudos[name] = 'numeric';\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.unregisterNumericPseudos = function (name) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n name = arguments[j];\n delete this.pseudos[name];\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.registerNestingOperators = function (operator) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n operator = arguments[j];\n this.ruleNestingOperators[operator] = true;\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.unregisterNestingOperators = function (operator) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n operator = arguments[j];\n delete this.ruleNestingOperators[operator];\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.registerAttrEqualityMods = function (mod) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n mod = arguments[j];\n this.attrEqualityMods[mod] = true;\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.unregisterAttrEqualityMods = function (mod) {\n for (var j = 0, len = arguments.length; j < len; j++) {\n mod = arguments[j];\n delete this.attrEqualityMods[mod];\n }\n\n return this;\n };\n\n CssSelectorParser.prototype.enableSubstitutes = function () {\n this.substitutesEnabled = true;\n return this;\n };\n\n CssSelectorParser.prototype.disableSubstitutes = function () {\n this.substitutesEnabled = false;\n return this;\n };\n\n function isIdentStart(c) {\n return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c === '-' || c === '_';\n }\n\n function isIdent(c) {\n return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c === '-' || c === '_';\n }\n\n function isHex(c) {\n return c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F' || c >= '0' && c <= '9';\n }\n\n function isDecimal(c) {\n return c >= '0' && c <= '9';\n }\n\n function isAttrMatchOperator(chr) {\n return chr === '=' || chr === '^' || chr === '$' || chr === '*' || chr === '~';\n }\n\n var identSpecialChars = {\n '!': true,\n '\"': true,\n '#': true,\n $: true,\n '%': true,\n '&': true,\n '\\'': true,\n '(': true,\n ')': true,\n '*': true,\n '+': true,\n ',': true,\n '.': true,\n '/': true,\n ';': true,\n '<': true,\n '=': true,\n '>': true,\n '?': true,\n '@': true,\n '[': true,\n '\\\\': true,\n ']': true,\n '^': true,\n '`': true,\n '{': true,\n '|': true,\n '}': true,\n '~': true\n };\n var strReplacementsRev = {\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\f': '\\\\f',\n '\\v': '\\\\v'\n };\n var singleQuoteEscapeChars = {\n n: '\\n',\n r: '\\r',\n t: '\\t',\n f: '\\f',\n '\\\\': '\\\\',\n '\\'': '\\''\n };\n var doubleQuotesEscapeChars = {\n n: '\\n',\n r: '\\r',\n t: '\\t',\n f: '\\f',\n '\\\\': '\\\\',\n '\"': '\"'\n };\n\n function ParseContext(str, pos, pseudos, attrEqualityMods, ruleNestingOperators, substitutesEnabled) {\n var chr, getIdent, getStr, l, skipWhitespace;\n l = str.length;\n chr = null;\n\n getStr = function getStr(quote, escapeTable) {\n var esc, hex, result;\n result = '';\n pos++;\n chr = str.charAt(pos);\n\n while (pos < l) {\n if (chr === quote) {\n pos++;\n return result;\n } else if (chr === '\\\\') {\n pos++;\n chr = str.charAt(pos);\n\n if (chr === quote) {\n result += quote;\n } else if (esc = escapeTable[chr]) {\n result += esc;\n } else if (isHex(chr)) {\n hex = chr;\n pos++;\n chr = str.charAt(pos);\n\n while (isHex(chr)) {\n hex += chr;\n pos++;\n chr = str.charAt(pos);\n }\n\n if (chr === ' ') {\n pos++;\n chr = str.charAt(pos);\n }\n\n result += String.fromCharCode(parseInt(hex, 16));\n continue;\n } else {\n result += chr;\n }\n } else {\n result += chr;\n }\n\n pos++;\n chr = str.charAt(pos);\n }\n\n return result;\n };\n\n getIdent = function getIdent() {\n var result = '';\n chr = str.charAt(pos);\n\n while (pos < l) {\n if (isIdent(chr)) {\n result += chr;\n } else if (chr === '\\\\') {\n pos++;\n\n if (pos >= l) {\n throw Error('Expected symbol but end of file reached.');\n }\n\n chr = str.charAt(pos);\n\n if (identSpecialChars[chr]) {\n result += chr;\n } else if (isHex(chr)) {\n var hex = chr;\n pos++;\n chr = str.charAt(pos);\n\n while (isHex(chr)) {\n hex += chr;\n pos++;\n chr = str.charAt(pos);\n }\n\n if (chr === ' ') {\n pos++;\n chr = str.charAt(pos);\n }\n\n result += String.fromCharCode(parseInt(hex, 16));\n continue;\n } else {\n result += chr;\n }\n } else {\n return result;\n }\n\n pos++;\n chr = str.charAt(pos);\n }\n\n return result;\n };\n\n skipWhitespace = function skipWhitespace() {\n chr = str.charAt(pos);\n var result = false;\n\n while (chr === ' ' || chr === '\\t' || chr === '\\n' || chr === '\\r' || chr === '\\f') {\n result = true;\n pos++;\n chr = str.charAt(pos);\n }\n\n return result;\n };\n\n this.parse = function () {\n var res = this.parseSelector();\n\n if (pos < l) {\n throw Error('Rule expected but \"' + str.charAt(pos) + '\" found.');\n }\n\n return res;\n };\n\n this.parseSelector = function () {\n var res;\n var selector = res = this.parseSingleSelector();\n chr = str.charAt(pos);\n\n while (chr === ',') {\n pos++;\n skipWhitespace();\n\n if (res.type !== 'selectors') {\n res = {\n type: 'selectors',\n selectors: [selector]\n };\n }\n\n selector = this.parseSingleSelector();\n\n if (!selector) {\n throw Error('Rule expected after \",\".');\n }\n\n res.selectors.push(selector);\n }\n\n return res;\n };\n\n this.parseSingleSelector = function () {\n skipWhitespace();\n var selector = {\n type: 'ruleSet'\n };\n var rule = this.parseRule();\n\n if (!rule) {\n return null;\n }\n\n var currentRule = selector;\n\n while (rule) {\n rule.type = 'rule';\n currentRule.rule = rule;\n currentRule = rule;\n skipWhitespace();\n chr = str.charAt(pos);\n\n if (pos >= l || chr === ',' || chr === ')') {\n break;\n }\n\n if (ruleNestingOperators[chr]) {\n var op = chr;\n pos++;\n skipWhitespace();\n rule = this.parseRule();\n\n if (!rule) {\n throw Error('Rule expected after \"' + op + '\".');\n }\n\n rule.nestingOperator = op;\n } else {\n rule = this.parseRule();\n\n if (rule) {\n rule.nestingOperator = null;\n }\n }\n }\n\n return selector;\n };\n\n this.parseRule = function () {\n var rule = null;\n\n while (pos < l) {\n chr = str.charAt(pos);\n\n if (chr === '*') {\n pos++;\n (rule = rule || {}).tagName = '*';\n } else if (isIdentStart(chr) || chr === '\\\\') {\n (rule = rule || {}).tagName = getIdent();\n } else if (chr === '.') {\n pos++;\n rule = rule || {};\n (rule.classNames = rule.classNames || []).push(getIdent());\n } else if (chr === '#') {\n pos++;\n (rule = rule || {}).id = getIdent();\n } else if (chr === '[') {\n pos++;\n skipWhitespace();\n var attr = {\n name: getIdent()\n };\n skipWhitespace();\n\n if (chr === ']') {\n pos++;\n } else {\n var operator = '';\n\n if (attrEqualityMods[chr]) {\n operator = chr;\n pos++;\n chr = str.charAt(pos);\n }\n\n if (pos >= l) {\n throw Error('Expected \"=\" but end of file reached.');\n }\n\n if (chr !== '=') {\n throw Error('Expected \"=\" but \"' + chr + '\" found.');\n }\n\n attr.operator = operator + '=';\n pos++;\n skipWhitespace();\n var attrValue = '';\n attr.valueType = 'string';\n\n if (chr === '\"') {\n attrValue = getStr('\"', doubleQuotesEscapeChars);\n } else if (chr === '\\'') {\n attrValue = getStr('\\'', singleQuoteEscapeChars);\n } else if (substitutesEnabled && chr === '$') {\n pos++;\n attrValue = getIdent();\n attr.valueType = 'substitute';\n } else {\n while (pos < l) {\n if (chr === ']') {\n break;\n }\n\n attrValue += chr;\n pos++;\n chr = str.charAt(pos);\n }\n\n attrValue = attrValue.trim();\n }\n\n skipWhitespace();\n\n if (pos >= l) {\n throw Error('Expected \"]\" but end of file reached.');\n }\n\n if (chr !== ']') {\n throw Error('Expected \"]\" but \"' + chr + '\" found.');\n }\n\n pos++;\n attr.value = attrValue;\n }\n\n rule = rule || {};\n (rule.attrs = rule.attrs || []).push(attr);\n } else if (chr === ':') {\n pos++;\n var pseudoName = getIdent();\n var pseudo = {\n name: pseudoName\n };\n\n if (chr === '(') {\n pos++;\n var value = '';\n skipWhitespace();\n\n if (pseudos[pseudoName] === 'selector') {\n pseudo.valueType = 'selector';\n value = this.parseSelector();\n } else {\n pseudo.valueType = pseudos[pseudoName] || 'string';\n\n if (chr === '\"') {\n value = getStr('\"', doubleQuotesEscapeChars);\n } else if (chr === '\\'') {\n value = getStr('\\'', singleQuoteEscapeChars);\n } else if (substitutesEnabled && chr === '$') {\n pos++;\n value = getIdent();\n pseudo.valueType = 'substitute';\n } else {\n while (pos < l) {\n if (chr === ')') {\n break;\n }\n\n value += chr;\n pos++;\n chr = str.charAt(pos);\n }\n\n value = value.trim();\n }\n\n skipWhitespace();\n }\n\n if (pos >= l) {\n throw Error('Expected \")\" but end of file reached.');\n }\n\n if (chr !== ')') {\n throw Error('Expected \")\" but \"' + chr + '\" found.');\n }\n\n pos++;\n pseudo.value = value;\n }\n\n rule = rule || {};\n (rule.pseudos = rule.pseudos || []).push(pseudo);\n } else {\n break;\n }\n }\n\n return rule;\n };\n\n return this;\n }\n\n CssSelectorParser.prototype.parse = function (str) {\n var context = new ParseContext(str, 0, this.pseudos, this.attrEqualityMods, this.ruleNestingOperators, this.substitutesEnabled);\n return context.parse();\n };\n\n CssSelectorParser.prototype.escapeIdentifier = function (s) {\n var result = '';\n var i = 0;\n var len = s.length;\n\n while (i < len) {\n var chr = s.charAt(i);\n\n if (identSpecialChars[chr]) {\n result += '\\\\' + chr;\n } else {\n if (!(chr === '_' || chr === '-' || chr >= 'A' && chr <= 'Z' || chr >= 'a' && chr <= 'z' || i !== 0 && chr >= '0' && chr <= '9')) {\n var charCode = chr.charCodeAt(0);\n\n if ((charCode & 63488) === 55296) {\n var extraCharCode = s.charCodeAt(i++);\n\n if ((charCode & 64512) !== 55296 || (extraCharCode & 64512) !== 56320) {\n throw Error('UCS-2(decode): illegal sequence');\n }\n\n charCode = ((charCode & 1023) << 10) + (extraCharCode & 1023) + 65536;\n }\n\n result += '\\\\' + charCode.toString(16) + ' ';\n } else {\n result += chr;\n }\n }\n\n i++;\n }\n\n return result;\n };\n\n CssSelectorParser.prototype.escapeStr = function (s) {\n var result = '';\n var i = 0;\n var len = s.length;\n var chr, replacement;\n\n while (i < len) {\n chr = s.charAt(i);\n\n if (chr === '\"') {\n chr = '\\\\\"';\n } else if (chr === '\\\\') {\n chr = '\\\\\\\\';\n } else if (replacement = strReplacementsRev[chr]) {\n chr = replacement;\n }\n\n result += chr;\n i++;\n }\n\n return '\"' + result + '\"';\n };\n\n CssSelectorParser.prototype.render = function (path) {\n return this._renderEntity(path).trim();\n };\n\n CssSelectorParser.prototype._renderEntity = function (entity) {\n var currentEntity, parts, res;\n res = '';\n\n switch (entity.type) {\n case 'ruleSet':\n currentEntity = entity.rule;\n parts = [];\n\n while (currentEntity) {\n if (currentEntity.nestingOperator) {\n parts.push(currentEntity.nestingOperator);\n }\n\n parts.push(this._renderEntity(currentEntity));\n currentEntity = currentEntity.rule;\n }\n\n res = parts.join(' ');\n break;\n\n case 'selectors':\n res = entity.selectors.map(this._renderEntity, this).join(', ');\n break;\n\n case 'rule':\n if (entity.tagName) {\n if (entity.tagName === '*') {\n res = '*';\n } else {\n res = this.escapeIdentifier(entity.tagName);\n }\n }\n\n if (entity.id) {\n res += '#' + this.escapeIdentifier(entity.id);\n }\n\n if (entity.classNames) {\n res += entity.classNames.map(function (cn) {\n return '.' + this.escapeIdentifier(cn);\n }, this).join('');\n }\n\n if (entity.attrs) {\n res += entity.attrs.map(function (attr) {\n if (attr.operator) {\n if (attr.valueType === 'substitute') {\n return '[' + this.escapeIdentifier(attr.name) + attr.operator + '$' + attr.value + ']';\n } else {\n return '[' + this.escapeIdentifier(attr.name) + attr.operator + this.escapeStr(attr.value) + ']';\n }\n } else {\n return '[' + this.escapeIdentifier(attr.name) + ']';\n }\n }, this).join('');\n }\n\n if (entity.pseudos) {\n res += entity.pseudos.map(function (pseudo) {\n if (pseudo.valueType) {\n if (pseudo.valueType === 'selector') {\n return ':' + this.escapeIdentifier(pseudo.name) + '(' + this._renderEntity(pseudo.value) + ')';\n } else if (pseudo.valueType === 'substitute') {\n return ':' + this.escapeIdentifier(pseudo.name) + '($' + pseudo.value + ')';\n } else if (pseudo.valueType === 'numeric') {\n return ':' + this.escapeIdentifier(pseudo.name) + '(' + pseudo.value + ')';\n } else {\n return ':' + this.escapeIdentifier(pseudo.name) + '(' + this.escapeIdentifier(pseudo.value) + ')';\n }\n } else {\n return ':' + this.escapeIdentifier(pseudo.name);\n }\n }, this).join('');\n }\n\n break;\n\n default:\n throw Error('Unknown entity type: \"' + entity.type(+'\".'));\n }\n\n return res;\n };\n\n exports.CssSelectorParser = CssSelectorParser;\n }, {}],\n 157: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('type/value/is'),\n isPlainFunction = _dereq_('type/plain-function/is'),\n assign = _dereq_('es5-ext/object/assign'),\n normalizeOpts = _dereq_('es5-ext/object/normalize-options'),\n contains = _dereq_('es5-ext/string/#/contains');\n\n var d = module.exports = function (dscr, value) {\n var c, e, w, options, desc;\n\n if (arguments.length < 2 || typeof dscr !== 'string') {\n options = value;\n value = dscr;\n dscr = null;\n } else {\n options = arguments[2];\n }\n\n if (isValue(dscr)) {\n c = contains.call(dscr, 'c');\n e = contains.call(dscr, 'e');\n w = contains.call(dscr, 'w');\n } else {\n c = w = true;\n e = false;\n }\n\n desc = {\n value: value,\n configurable: c,\n enumerable: e,\n writable: w\n };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n\n d.gs = function (dscr, get, set) {\n var c, e, options, desc;\n\n if (typeof dscr !== 'string') {\n options = set;\n set = get;\n get = dscr;\n dscr = null;\n } else {\n options = arguments[3];\n }\n\n if (!isValue(get)) {\n get = undefined;\n } else if (!isPlainFunction(get)) {\n options = get;\n get = set = undefined;\n } else if (!isValue(set)) {\n set = undefined;\n } else if (!isPlainFunction(set)) {\n options = set;\n set = undefined;\n }\n\n if (isValue(dscr)) {\n c = contains.call(dscr, 'c');\n e = contains.call(dscr, 'e');\n } else {\n c = true;\n e = false;\n }\n\n desc = {\n get: get,\n set: set,\n configurable: c,\n enumerable: e\n };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n }, {\n 'es5-ext/object/assign': 178,\n 'es5-ext/object/normalize-options': 190,\n 'es5-ext/string/#/contains': 197,\n 'type/plain-function/is': 242,\n 'type/value/is': 244\n }],\n 158: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n };\n }, {}],\n 159: [function (_dereq_, module, exports) {\n 'use strict';\n\n var numberIsNaN = _dereq_('../../number/is-nan'),\n toPosInt = _dereq_('../../number/to-pos-integer'),\n value = _dereq_('../../object/valid-value'),\n indexOf = Array.prototype.indexOf,\n objHasOwnProperty = Object.prototype.hasOwnProperty,\n abs = Math.abs,\n floor = Math.floor;\n\n module.exports = function (searchElement) {\n var i, length, fromIndex, val;\n\n if (!numberIsNaN(searchElement)) {\n return indexOf.apply(this, arguments);\n }\n\n length = toPosInt(value(this).length);\n fromIndex = arguments[1];\n\n if (isNaN(fromIndex)) {\n fromIndex = 0;\n } else if (fromIndex >= 0) {\n fromIndex = floor(fromIndex);\n } else {\n fromIndex = toPosInt(this.length) - floor(abs(fromIndex));\n }\n\n for (i = fromIndex; i < length; ++i) {\n if (objHasOwnProperty.call(this, i)) {\n val = this[i];\n\n if (numberIsNaN(val)) {\n return i;\n }\n }\n }\n\n return -1;\n };\n }, {\n '../../number/is-nan': 172,\n '../../number/to-pos-integer': 176,\n '../../object/valid-value': 193\n }],\n 160: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? Array.from : _dereq_('./shim');\n }, {\n './is-implemented': 161,\n './shim': 162\n }],\n 161: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n var from = Array.from,\n arr,\n result;\n\n if (typeof from !== 'function') {\n return false;\n }\n\n arr = ['raz', 'dwa'];\n result = from(arr);\n return Boolean(result && result !== arr && result[1] === 'dwa');\n };\n }, {}],\n 162: [function (_dereq_, module, exports) {\n 'use strict';\n\n var iteratorSymbol = _dereq_('es6-symbol').iterator,\n isArguments = _dereq_('../../function/is-arguments'),\n isFunction = _dereq_('../../function/is-function'),\n toPosInt = _dereq_('../../number/to-pos-integer'),\n callable = _dereq_('../../object/valid-callable'),\n validValue = _dereq_('../../object/valid-value'),\n isValue = _dereq_('../../object/is-value'),\n isString = _dereq_('../../string/is-string'),\n isArray = Array.isArray,\n call = Function.prototype.call,\n desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: null\n },\n defineProperty = Object.defineProperty;\n\n module.exports = function (arrayLike) {\n var mapFn = arguments[1],\n thisArg = arguments[2],\n Context,\n i,\n j,\n arr,\n length,\n code,\n iterator,\n result,\n getIterator,\n value;\n arrayLike = Object(validValue(arrayLike));\n\n if (isValue(mapFn)) {\n callable(mapFn);\n }\n\n if (!this || this === Array || !isFunction(this)) {\n if (!mapFn) {\n if (isArguments(arrayLike)) {\n length = arrayLike.length;\n\n if (length !== 1) {\n return Array.apply(null, arrayLike);\n }\n\n arr = new Array(1);\n arr[0] = arrayLike[0];\n return arr;\n }\n\n if (isArray(arrayLike)) {\n arr = new Array(length = arrayLike.length);\n\n for (i = 0; i < length; ++i) {\n arr[i] = arrayLike[i];\n }\n\n return arr;\n }\n }\n\n arr = [];\n } else {\n Context = this;\n }\n\n if (!isArray(arrayLike)) {\n if ((getIterator = arrayLike[iteratorSymbol]) !== undefined) {\n iterator = callable(getIterator).call(arrayLike);\n\n if (Context) {\n arr = new Context();\n }\n\n result = iterator.next();\n i = 0;\n\n while (!result.done) {\n value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n\n result = iterator.next();\n ++i;\n }\n\n length = i;\n } else if (isString(arrayLike)) {\n length = arrayLike.length;\n\n if (Context) {\n arr = new Context();\n }\n\n for (i = 0, j = 0; i < length; ++i) {\n value = arrayLike[i];\n\n if (i + 1 < length) {\n code = value.charCodeAt(0);\n\n if (code >= 55296 && code <= 56319) {\n value += arrayLike[++i];\n }\n }\n\n value = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n\n if (Context) {\n desc.value = value;\n defineProperty(arr, j, desc);\n } else {\n arr[j] = value;\n }\n\n ++j;\n }\n\n length = j;\n }\n }\n\n if (length === undefined) {\n length = toPosInt(arrayLike.length);\n\n if (Context) {\n arr = new Context(length);\n }\n\n for (i = 0; i < length; ++i) {\n value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n }\n }\n\n if (Context) {\n desc.value = null;\n arr.length = length;\n }\n\n return arr;\n };\n }, {\n '../../function/is-arguments': 166,\n '../../function/is-function': 167,\n '../../number/to-pos-integer': 176,\n '../../object/is-value': 184,\n '../../object/valid-callable': 192,\n '../../object/valid-value': 193,\n '../../string/is-string': 200,\n 'es6-symbol': 203\n }],\n 163: [function (_dereq_, module, exports) {\n 'use strict';\n\n var from = _dereq_('./from'),\n isArray = Array.isArray;\n\n module.exports = function (arrayLike) {\n return isArray(arrayLike) ? arrayLike : from(arrayLike);\n };\n }, {\n './from': 160\n }],\n 164: [function (_dereq_, module, exports) {\n 'use strict';\n\n var assign = _dereq_('../object/assign'),\n isObject = _dereq_('../object/is-object'),\n isValue = _dereq_('../object/is-value'),\n captureStackTrace = Error.captureStackTrace;\n\n module.exports = function (message) {\n var err = new Error(message),\n code = arguments[1],\n ext = arguments[2];\n\n if (!isValue(ext)) {\n if (isObject(code)) {\n ext = code;\n code = null;\n }\n }\n\n if (isValue(ext)) {\n assign(err, ext);\n }\n\n if (isValue(code)) {\n err.code = code;\n }\n\n if (captureStackTrace) {\n captureStackTrace(err, module.exports);\n }\n\n return err;\n };\n }, {\n '../object/assign': 178,\n '../object/is-object': 183,\n '../object/is-value': 184\n }],\n 165: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toPosInt = _dereq_('../number/to-pos-integer');\n\n var test = function test(arg1, arg2) {\n return arg2;\n };\n\n var desc, defineProperty, generate, mixin;\n\n try {\n Object.defineProperty(test, 'length', {\n configurable: true,\n writable: false,\n enumerable: false,\n value: 1\n });\n } catch (ignore) {}\n\n if (test.length === 1) {\n desc = {\n configurable: true,\n writable: false,\n enumerable: false\n };\n defineProperty = Object.defineProperty;\n\n module.exports = function (fn, length) {\n length = toPosInt(length);\n\n if (fn.length === length) {\n return fn;\n }\n\n desc.value = length;\n return defineProperty(fn, 'length', desc);\n };\n } else {\n mixin = _dereq_('../object/mixin');\n\n generate = function () {\n var cache = [];\n return function (length) {\n var args,\n i = 0;\n\n if (cache[length]) {\n return cache[length];\n }\n\n args = [];\n\n while (length--) {\n args.push('a' + (++i).toString(36));\n }\n\n return new Function('fn', 'return function (' + args.join(', ') + ') { return fn.apply(this, arguments); };');\n };\n }();\n\n module.exports = function (src, length) {\n var target;\n length = toPosInt(length);\n\n if (src.length === length) {\n return src;\n }\n\n target = generate(length)(src);\n\n try {\n mixin(target, src);\n } catch (ignore) {}\n\n return target;\n };\n }\n }, {\n '../number/to-pos-integer': 176,\n '../object/mixin': 189\n }],\n 166: [function (_dereq_, module, exports) {\n 'use strict';\n\n var objToString = Object.prototype.toString,\n id = objToString.call(function () {\n return arguments;\n }());\n\n module.exports = function (value) {\n return objToString.call(value) === id;\n };\n }, {}],\n 167: [function (_dereq_, module, exports) {\n 'use strict';\n\n var objToString = Object.prototype.toString,\n isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n\n module.exports = function (value) {\n return typeof value === 'function' && isFunctionStringTag(objToString.call(value));\n };\n }, {}],\n 168: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {};\n }, {}],\n 169: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? Math.sign : _dereq_('./shim');\n }, {\n './is-implemented': 170,\n './shim': 171\n }],\n 170: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n var sign = Math.sign;\n\n if (typeof sign !== 'function') {\n return false;\n }\n\n return sign(10) === 1 && sign(-20) === -1;\n };\n }, {}],\n 171: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (value) {\n value = Number(value);\n\n if (isNaN(value) || value === 0) {\n return value;\n }\n\n return value > 0 ? 1 : -1;\n };\n }, {}],\n 172: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? Number.isNaN : _dereq_('./shim');\n }, {\n './is-implemented': 173,\n './shim': 174\n }],\n 173: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n var numberIsNaN = Number.isNaN;\n\n if (typeof numberIsNaN !== 'function') {\n return false;\n }\n\n return !numberIsNaN({}) && numberIsNaN(NaN) && !numberIsNaN(34);\n };\n }, {}],\n 174: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (value) {\n return value !== value;\n };\n }, {}],\n 175: [function (_dereq_, module, exports) {\n 'use strict';\n\n var sign = _dereq_('../math/sign'),\n abs = Math.abs,\n floor = Math.floor;\n\n module.exports = function (value) {\n if (isNaN(value)) {\n return 0;\n }\n\n value = Number(value);\n\n if (value === 0 || !isFinite(value)) {\n return value;\n }\n\n return sign(value) * floor(abs(value));\n };\n }, {\n '../math/sign': 169\n }],\n 176: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toInteger = _dereq_('./to-integer'),\n max = Math.max;\n\n module.exports = function (value) {\n return max(0, toInteger(value));\n };\n }, {\n './to-integer': 175\n }],\n 177: [function (_dereq_, module, exports) {\n 'use strict';\n\n var callable = _dereq_('./valid-callable'),\n value = _dereq_('./valid-value'),\n bind = Function.prototype.bind,\n call = Function.prototype.call,\n keys = Object.keys,\n objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n\n module.exports = function (method, defVal) {\n return function (obj, cb) {\n var list,\n thisArg = arguments[2],\n compareFn = arguments[3];\n obj = Object(value(obj));\n callable(cb);\n list = keys(obj);\n\n if (compareFn) {\n list.sort(typeof compareFn === 'function' ? bind.call(compareFn, obj) : undefined);\n }\n\n if (typeof method !== 'function') {\n method = list[method];\n }\n\n return call.call(method, list, function (key, index) {\n if (!objPropertyIsEnumerable.call(obj, key)) {\n return defVal;\n }\n\n return call.call(cb, thisArg, obj[key], key, obj, index);\n });\n };\n };\n }, {\n './valid-callable': 192,\n './valid-value': 193\n }],\n 178: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? Object.assign : _dereq_('./shim');\n }, {\n './is-implemented': 179,\n './shim': 180\n }],\n 179: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n var assign = Object.assign,\n obj;\n\n if (typeof assign !== 'function') {\n return false;\n }\n\n obj = {\n foo: 'raz'\n };\n assign(obj, {\n bar: 'dwa'\n }, {\n trzy: 'trzy'\n });\n return obj.foo + obj.bar + obj.trzy === 'razdwatrzy';\n };\n }, {}],\n 180: [function (_dereq_, module, exports) {\n 'use strict';\n\n var keys = _dereq_('../keys'),\n value = _dereq_('../valid-value'),\n max = Math.max;\n\n module.exports = function (dest, src) {\n var error,\n i,\n length = max(arguments.length, 2),\n assign;\n dest = Object(value(dest));\n\n assign = function assign(key) {\n try {\n dest[key] = src[key];\n } catch (e) {\n if (!error) {\n error = e;\n }\n }\n };\n\n for (i = 1; i < length; ++i) {\n src = arguments[i];\n keys(src).forEach(assign);\n }\n\n if (error !== undefined) {\n throw error;\n }\n\n return dest;\n };\n }, {\n '../keys': 185,\n '../valid-value': 193\n }],\n 181: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./_iterate')('forEach');\n }, {\n './_iterate': 177\n }],\n 182: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (obj) {\n return typeof obj === 'function';\n };\n }, {}],\n 183: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('./is-value');\n\n var map = {\n function: true,\n object: true\n };\n\n module.exports = function (value) {\n return isValue(value) && map[typeof value] || false;\n };\n }, {\n './is-value': 184\n }],\n 184: [function (_dereq_, module, exports) {\n 'use strict';\n\n var _undefined = _dereq_('../function/noop')();\n\n module.exports = function (val) {\n return val !== _undefined && val !== null;\n };\n }, {\n '../function/noop': 168\n }],\n 185: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? Object.keys : _dereq_('./shim');\n }, {\n './is-implemented': 186,\n './shim': 187\n }],\n 186: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n try {\n Object.keys('primitive');\n return true;\n } catch (e) {\n return false;\n }\n };\n }, {}],\n 187: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('../is-value');\n\n var keys = Object.keys;\n\n module.exports = function (object) {\n return keys(isValue(object) ? Object(object) : object);\n };\n }, {\n '../is-value': 184\n }],\n 188: [function (_dereq_, module, exports) {\n 'use strict';\n\n var callable = _dereq_('./valid-callable'),\n forEach = _dereq_('./for-each'),\n call = Function.prototype.call;\n\n module.exports = function (obj, cb) {\n var result = {},\n thisArg = arguments[2];\n callable(cb);\n forEach(obj, function (value, key, targetObj, index) {\n result[key] = call.call(cb, thisArg, value, key, targetObj, index);\n });\n return result;\n };\n }, {\n './for-each': 181,\n './valid-callable': 192\n }],\n 189: [function (_dereq_, module, exports) {\n 'use strict';\n\n var value = _dereq_('./valid-value'),\n defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\n module.exports = function (target, source) {\n var error,\n sourceObject = Object(value(source));\n target = Object(value(target));\n getOwnPropertyNames(sourceObject).forEach(function (name) {\n try {\n defineProperty(target, name, getOwnPropertyDescriptor(source, name));\n } catch (e) {\n error = e;\n }\n });\n\n if (typeof getOwnPropertySymbols === 'function') {\n getOwnPropertySymbols(sourceObject).forEach(function (symbol) {\n try {\n defineProperty(target, symbol, getOwnPropertyDescriptor(source, symbol));\n } catch (e) {\n error = e;\n }\n });\n }\n\n if (error !== undefined) {\n throw error;\n }\n\n return target;\n };\n }, {\n './valid-value': 193\n }],\n 190: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('./is-value');\n\n var forEach = Array.prototype.forEach,\n create = Object.create;\n\n var process = function process(src, obj) {\n var key;\n\n for (key in src) {\n obj[key] = src[key];\n }\n };\n\n module.exports = function (opts1) {\n var result = create(null);\n forEach.call(arguments, function (options) {\n if (!isValue(options)) {\n return;\n }\n\n process(Object(options), result);\n });\n return result;\n };\n }, {\n './is-value': 184\n }],\n 191: [function (_dereq_, module, exports) {\n 'use strict';\n\n var forEach = Array.prototype.forEach,\n create = Object.create;\n\n module.exports = function (arg) {\n var set = create(null);\n forEach.call(arguments, function (name) {\n set[name] = true;\n });\n return set;\n };\n }, {}],\n 192: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (fn) {\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n\n return fn;\n };\n }, {}],\n 193: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('./is-value');\n\n module.exports = function (value) {\n if (!isValue(value)) {\n throw new TypeError('Cannot use null or undefined');\n }\n\n return value;\n };\n }, {\n './is-value': 184\n }],\n 194: [function (_dereq_, module, exports) {\n 'use strict';\n\n var ensureValue = _dereq_('./valid-value'),\n stringifiable = _dereq_('./validate-stringifiable');\n\n module.exports = function (value) {\n return stringifiable(ensureValue(value));\n };\n }, {\n './valid-value': 193,\n './validate-stringifiable': 195\n }],\n 195: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isCallable = _dereq_('./is-callable');\n\n module.exports = function (stringifiable) {\n try {\n if (stringifiable && isCallable(stringifiable.toString)) {\n return stringifiable.toString();\n }\n\n return String(stringifiable);\n } catch (e) {\n throw new TypeError('Passed argument cannot be stringifed');\n }\n };\n }, {\n './is-callable': 182\n }],\n 196: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isCallable = _dereq_('./object/is-callable');\n\n module.exports = function (value) {\n try {\n if (value && isCallable(value.toString)) {\n return value.toString();\n }\n\n return String(value);\n } catch (e) {\n return '<Non-coercible to string value>';\n }\n };\n }, {\n './object/is-callable': 182\n }],\n 197: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? String.prototype.contains : _dereq_('./shim');\n }, {\n './is-implemented': 198,\n './shim': 199\n }],\n 198: [function (_dereq_, module, exports) {\n 'use strict';\n\n var str = 'razdwatrzy';\n\n module.exports = function () {\n if (typeof str.contains !== 'function') {\n return false;\n }\n\n return str.contains('dwa') === true && str.contains('foo') === false;\n };\n }, {}],\n 199: [function (_dereq_, module, exports) {\n 'use strict';\n\n var indexOf = String.prototype.indexOf;\n\n module.exports = function (searchString) {\n return indexOf.call(this, searchString, arguments[1]) > -1;\n };\n }, {}],\n 200: [function (_dereq_, module, exports) {\n 'use strict';\n\n var objToString = Object.prototype.toString,\n id = objToString.call('');\n\n module.exports = function (value) {\n return typeof value === 'string' || value && typeof value === 'object' && (value instanceof String || objToString.call(value) === id) || false;\n };\n }, {}],\n 201: [function (_dereq_, module, exports) {\n 'use strict';\n\n var safeToString = _dereq_('./safe-to-string');\n\n var reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n\n module.exports = function (value) {\n var string = safeToString(value);\n\n if (string.length > 100) {\n string = string.slice(0, 99) + \"\\u2026\";\n }\n\n string = string.replace(reNewLine, function (char) {\n return JSON.stringify(char).slice(1, -1);\n });\n return string;\n };\n }, {\n './safe-to-string': 196\n }],\n 202: [function (_dereq_, module, exports) {\n (function (process, global) {\n (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.ES6Promise = factory();\n })(this, function () {\n 'use strict';\n\n function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n }\n\n function isFunction(x) {\n return typeof x === 'function';\n }\n\n var _isArray = void 0;\n\n if (Array.isArray) {\n _isArray = Array.isArray;\n } else {\n _isArray = function _isArray(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n }\n\n var isArray = _isArray;\n var len = 0;\n var vertxNext = void 0;\n var customSchedulerFn = void 0;\n\n var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n\n if (len === 2) {\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n };\n\n function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n }\n\n function setAsap(asapFn) {\n asap = asapFn;\n }\n\n var browserWindow = typeof window !== 'undefined' ? window : undefined;\n var browserGlobal = browserWindow || {};\n var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n function useNextTick() {\n return function () {\n return process.nextTick(flush);\n };\n }\n\n function useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n }\n\n function useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n }\n\n function useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n }\n\n function useSetTimeout() {\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n }\n\n var queue = new Array(1e3);\n\n function flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n callback(arg);\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n }\n\n function attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n }\n\n var scheduleFlush = void 0;\n\n if (isNode) {\n scheduleFlush = useNextTick();\n } else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n } else if (isWorker) {\n scheduleFlush = useMessageChannel();\n } else if (browserWindow === undefined && typeof _dereq_ === 'function') {\n scheduleFlush = attemptVertx();\n } else {\n scheduleFlush = useSetTimeout();\n }\n\n function then(onFulfillment, onRejection) {\n var parent = this;\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n\n function resolve$1(object) {\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n }\n\n var PROMISE_ID = Math.random().toString(36).substring(2);\n\n function noop() {}\n\n var PENDING = void 0;\n var FULFILLED = 1;\n var REJECTED = 2;\n\n function selfFulfillment() {\n return new TypeError('You cannot resolve a promise with itself');\n }\n\n function cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n }\n\n function handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n\n sealed = true;\n\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n\n sealed = true;\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n }\n\n function handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n }\n\n function handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n }\n\n function resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n }\n\n function publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n }\n\n function fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._state = REJECTED;\n promise._result = reason;\n asap(publishRejection, promise);\n }\n\n function subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n parent._onerror = null;\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n }\n\n function publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {} else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n\n function initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n }\n\n var id = 0;\n\n function nextId() {\n return id++;\n }\n\n function makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n }\n\n function validationError() {\n return new Error('Array Methods must be provided an Array');\n }\n\n var Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n\n this._enumerate(input);\n\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n\n var error = void 0;\n var didError = false;\n\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n }();\n\n function all(entries) {\n return new Enumerator(this, entries).promise;\n }\n\n function race(entries) {\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n }\n\n function reject$1(reason) {\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n }\n\n function needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function needsNew() {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n var Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n }();\n\n Promise$1.prototype.then = then;\n Promise$1.all = all;\n Promise$1.race = race;\n Promise$1.resolve = resolve$1;\n Promise$1.reject = reject$1;\n Promise$1._setScheduler = setScheduler;\n Promise$1._setAsap = setAsap;\n Promise$1._asap = asap;\n\n function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {}\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n }\n\n Promise$1.polyfill = polyfill;\n Promise$1.Promise = Promise$1;\n return Promise$1;\n });\n }).call(this, _dereq_('_process'), typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});\n }, {\n _process: 236\n }],\n 203: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? _dereq_('ext/global-this').Symbol : _dereq_('./polyfill');\n }, {\n './is-implemented': 204,\n './polyfill': 209,\n 'ext/global-this': 213\n }],\n 204: [function (_dereq_, module, exports) {\n 'use strict';\n\n var global = _dereq_('ext/global-this'),\n validTypes = {\n object: true,\n symbol: true\n };\n\n module.exports = function () {\n var Symbol = global.Symbol;\n var symbol;\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n symbol = Symbol('test symbol');\n\n try {\n String(symbol);\n } catch (e) {\n return false;\n }\n\n if (!validTypes[typeof Symbol.iterator]) {\n return false;\n }\n\n if (!validTypes[typeof Symbol.toPrimitive]) {\n return false;\n }\n\n if (!validTypes[typeof Symbol.toStringTag]) {\n return false;\n }\n\n return true;\n };\n }, {\n 'ext/global-this': 213\n }],\n 205: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (value) {\n if (!value) {\n return false;\n }\n\n if (typeof value === 'symbol') {\n return true;\n }\n\n if (!value.constructor) {\n return false;\n }\n\n if (value.constructor.name !== 'Symbol') {\n return false;\n }\n\n return value[value.constructor.toStringTag] === 'Symbol';\n };\n }, {}],\n 206: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d');\n\n var create = Object.create,\n defineProperty = Object.defineProperty,\n objPrototype = Object.prototype;\n var created = create(null);\n\n module.exports = function (desc) {\n var postfix = 0,\n name,\n ie11BugWorkaround;\n\n while (created[desc + (postfix || '')]) {\n ++postfix;\n }\n\n desc += postfix || '';\n created[desc] = true;\n name = '@@' + desc;\n defineProperty(objPrototype, name, d.gs(null, function (value) {\n if (ie11BugWorkaround) {\n return;\n }\n\n ie11BugWorkaround = true;\n defineProperty(this, name, d(value));\n ie11BugWorkaround = false;\n }));\n return name;\n };\n }, {\n d: 157\n }],\n 207: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d'),\n NativeSymbol = _dereq_('ext/global-this').Symbol;\n\n module.exports = function (SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n hasInstance: d('', NativeSymbol && NativeSymbol.hasInstance || SymbolPolyfill('hasInstance')),\n isConcatSpreadable: d('', NativeSymbol && NativeSymbol.isConcatSpreadable || SymbolPolyfill('isConcatSpreadable')),\n iterator: d('', NativeSymbol && NativeSymbol.iterator || SymbolPolyfill('iterator')),\n match: d('', NativeSymbol && NativeSymbol.match || SymbolPolyfill('match')),\n replace: d('', NativeSymbol && NativeSymbol.replace || SymbolPolyfill('replace')),\n search: d('', NativeSymbol && NativeSymbol.search || SymbolPolyfill('search')),\n species: d('', NativeSymbol && NativeSymbol.species || SymbolPolyfill('species')),\n split: d('', NativeSymbol && NativeSymbol.split || SymbolPolyfill('split')),\n toPrimitive: d('', NativeSymbol && NativeSymbol.toPrimitive || SymbolPolyfill('toPrimitive')),\n toStringTag: d('', NativeSymbol && NativeSymbol.toStringTag || SymbolPolyfill('toStringTag')),\n unscopables: d('', NativeSymbol && NativeSymbol.unscopables || SymbolPolyfill('unscopables'))\n });\n };\n }, {\n d: 157,\n 'ext/global-this': 213\n }],\n 208: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d'),\n validateSymbol = _dereq_('../../../validate-symbol');\n\n var registry = Object.create(null);\n\n module.exports = function (SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n for: d(function (key) {\n if (registry[key]) {\n return registry[key];\n }\n\n return registry[key] = SymbolPolyfill(String(key));\n }),\n keyFor: d(function (symbol) {\n var key;\n validateSymbol(symbol);\n\n for (key in registry) {\n if (registry[key] === symbol) {\n return key;\n }\n }\n\n return undefined;\n })\n });\n };\n }, {\n '../../../validate-symbol': 210,\n d: 157\n }],\n 209: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d'),\n validateSymbol = _dereq_('./validate-symbol'),\n NativeSymbol = _dereq_('ext/global-this').Symbol,\n generateName = _dereq_('./lib/private/generate-name'),\n setupStandardSymbols = _dereq_('./lib/private/setup/standard-symbols'),\n setupSymbolRegistry = _dereq_('./lib/private/setup/symbol-registry');\n\n var create = Object.create,\n defineProperties = Object.defineProperties,\n defineProperty = Object.defineProperty;\n var SymbolPolyfill, HiddenSymbol, isNativeSafe;\n\n if (typeof NativeSymbol === 'function') {\n try {\n String(NativeSymbol());\n isNativeSafe = true;\n } catch (ignore) {}\n } else {\n NativeSymbol = null;\n }\n\n HiddenSymbol = function Symbol(description) {\n if (this instanceof HiddenSymbol) {\n throw new TypeError('Symbol is not a constructor');\n }\n\n return SymbolPolyfill(description);\n };\n\n module.exports = SymbolPolyfill = function Symbol(description) {\n var symbol;\n\n if (this instanceof Symbol) {\n throw new TypeError('Symbol is not a constructor');\n }\n\n if (isNativeSafe) {\n return NativeSymbol(description);\n }\n\n symbol = create(HiddenSymbol.prototype);\n description = description === undefined ? '' : String(description);\n return defineProperties(symbol, {\n __description__: d('', description),\n __name__: d('', generateName(description))\n });\n };\n\n setupStandardSymbols(SymbolPolyfill);\n setupSymbolRegistry(SymbolPolyfill);\n defineProperties(HiddenSymbol.prototype, {\n constructor: d(SymbolPolyfill),\n toString: d('', function () {\n return this.__name__;\n })\n });\n defineProperties(SymbolPolyfill.prototype, {\n toString: d(function () {\n return 'Symbol (' + validateSymbol(this).__description__ + ')';\n }),\n valueOf: d(function () {\n return validateSymbol(this);\n })\n });\n defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, d('', function () {\n var symbol = validateSymbol(this);\n\n if (typeof symbol === 'symbol') {\n return symbol;\n }\n\n return symbol.toString();\n }));\n defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d('c', 'Symbol'));\n defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, d('c', SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]));\n defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, d('c', SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]));\n }, {\n './lib/private/generate-name': 206,\n './lib/private/setup/standard-symbols': 207,\n './lib/private/setup/symbol-registry': 208,\n './validate-symbol': 210,\n d: 157,\n 'ext/global-this': 213\n }],\n 210: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isSymbol = _dereq_('./is-symbol');\n\n module.exports = function (value) {\n if (!isSymbol(value)) {\n throw new TypeError(value + ' is not a symbol');\n }\n\n return value;\n };\n }, {\n './is-symbol': 205\n }],\n 211: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d'),\n callable = _dereq_('es5-ext/object/valid-callable'),\n apply = Function.prototype.apply,\n call = Function.prototype.call,\n create = Object.create,\n defineProperty = Object.defineProperty,\n defineProperties = Object.defineProperties,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n descriptor = {\n configurable: true,\n enumerable: false,\n writable: true\n },\n on,\n _once2,\n off,\n emit,\n methods,\n descriptors,\n base;\n\n on = function on(type, listener) {\n var data;\n callable(listener);\n\n if (!hasOwnProperty.call(this, '__ee__')) {\n data = descriptor.value = create(null);\n defineProperty(this, '__ee__', descriptor);\n descriptor.value = null;\n } else {\n data = this.__ee__;\n }\n\n if (!data[type]) {\n data[type] = listener;\n } else if (typeof data[type] === 'object') {\n data[type].push(listener);\n } else {\n data[type] = [data[type], listener];\n }\n\n return this;\n };\n\n _once2 = function once(type, listener) {\n var _once, self;\n\n callable(listener);\n self = this;\n on.call(this, type, _once = function once() {\n off.call(self, type, _once);\n apply.call(listener, this, arguments);\n });\n _once.__eeOnceListener__ = listener;\n return this;\n };\n\n off = function off(type, listener) {\n var data, listeners, candidate, i;\n callable(listener);\n\n if (!hasOwnProperty.call(this, '__ee__')) {\n return this;\n }\n\n data = this.__ee__;\n\n if (!data[type]) {\n return this;\n }\n\n listeners = data[type];\n\n if (typeof listeners === 'object') {\n for (i = 0; candidate = listeners[i]; ++i) {\n if (candidate === listener || candidate.__eeOnceListener__ === listener) {\n if (listeners.length === 2) {\n data[type] = listeners[i ? 0 : 1];\n } else {\n listeners.splice(i, 1);\n }\n }\n }\n } else {\n if (listeners === listener || listeners.__eeOnceListener__ === listener) {\n delete data[type];\n }\n }\n\n return this;\n };\n\n emit = function emit(type) {\n var i, l, listener, listeners, args;\n\n if (!hasOwnProperty.call(this, '__ee__')) {\n return;\n }\n\n listeners = this.__ee__[type];\n\n if (!listeners) {\n return;\n }\n\n if (typeof listeners === 'object') {\n l = arguments.length;\n args = new Array(l - 1);\n\n for (i = 1; i < l; ++i) {\n args[i - 1] = arguments[i];\n }\n\n listeners = listeners.slice();\n\n for (i = 0; listener = listeners[i]; ++i) {\n apply.call(listener, this, args);\n }\n } else {\n switch (arguments.length) {\n case 1:\n call.call(listeners, this);\n break;\n\n case 2:\n call.call(listeners, this, arguments[1]);\n break;\n\n case 3:\n call.call(listeners, this, arguments[1], arguments[2]);\n break;\n\n default:\n l = arguments.length;\n args = new Array(l - 1);\n\n for (i = 1; i < l; ++i) {\n args[i - 1] = arguments[i];\n }\n\n apply.call(listeners, this, args);\n }\n }\n };\n\n methods = {\n on: on,\n once: _once2,\n off: off,\n emit: emit\n };\n descriptors = {\n on: d(on),\n once: d(_once2),\n off: d(off),\n emit: d(emit)\n };\n base = defineProperties({}, descriptors);\n\n module.exports = exports = function exports(o) {\n return o == null ? create(base) : defineProperties(Object(o), descriptors);\n };\n\n exports.methods = methods;\n }, {\n d: 157,\n 'es5-ext/object/valid-callable': 192\n }],\n 212: [function (_dereq_, module, exports) {\n var naiveFallback = function naiveFallback() {\n if (typeof self === 'object' && self) {\n return self;\n }\n\n if (typeof window === 'object' && window) {\n return window;\n }\n\n throw new Error('Unable to resolve global `this`');\n };\n\n module.exports = function () {\n if (this) {\n return this;\n }\n\n try {\n Object.defineProperty(Object.prototype, '__global__', {\n get: function get() {\n return this;\n },\n configurable: true\n });\n } catch (error) {\n return naiveFallback();\n }\n\n try {\n if (!__global__) {\n return naiveFallback();\n }\n\n return __global__;\n } finally {\n delete Object.prototype.__global__;\n }\n }();\n }, {}],\n 213: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = _dereq_('./is-implemented')() ? globalThis : _dereq_('./implementation');\n }, {\n './implementation': 212,\n './is-implemented': 214\n }],\n 214: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function () {\n if (typeof globalThis !== 'object') {\n return false;\n }\n\n if (!globalThis) {\n return false;\n }\n\n return globalThis.Array === Array;\n };\n }, {}],\n 215: [function (_dereq_, module, exports) {\n module.exports = isPromise;\n\n function isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n }\n }, {}],\n 216: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toPosInt = _dereq_('es5-ext/number/to-pos-integer'),\n create = Object.create,\n hasOwnProperty = Object.prototype.hasOwnProperty;\n\n module.exports = function (limit) {\n var size = 0,\n base = 1,\n queue = create(null),\n map = create(null),\n index = 0,\n del;\n limit = toPosInt(limit);\n return {\n hit: function hit(id) {\n var oldIndex = map[id],\n nuIndex = ++index;\n queue[nuIndex] = id;\n map[id] = nuIndex;\n\n if (!oldIndex) {\n ++size;\n\n if (size <= limit) {\n return;\n }\n\n id = queue[base];\n del(id);\n return id;\n }\n\n delete queue[oldIndex];\n\n if (base !== oldIndex) {\n return;\n }\n\n while (!hasOwnProperty.call(queue, ++base)) {\n continue;\n }\n },\n delete: del = function del(id) {\n var oldIndex = map[id];\n\n if (!oldIndex) {\n return;\n }\n\n delete queue[oldIndex];\n delete map[id];\n --size;\n\n if (base !== oldIndex) {\n return;\n }\n\n if (!size) {\n index = 0;\n base = 1;\n return;\n }\n\n while (!hasOwnProperty.call(queue, ++base)) {\n continue;\n }\n },\n clear: function clear() {\n size = 0;\n base = 1;\n queue = create(null);\n map = create(null);\n index = 0;\n }\n };\n };\n }, {\n 'es5-ext/number/to-pos-integer': 176\n }],\n 217: [function (_dereq_, module, exports) {\n 'use strict';\n\n var aFrom = _dereq_('es5-ext/array/from'),\n objectMap = _dereq_('es5-ext/object/map'),\n mixin = _dereq_('es5-ext/object/mixin'),\n defineLength = _dereq_('es5-ext/function/_define-length'),\n nextTick = _dereq_('next-tick');\n\n var slice = Array.prototype.slice,\n apply = Function.prototype.apply,\n create = Object.create;\n\n _dereq_('../lib/registered-extensions').async = function (tbi, conf) {\n var waiting = create(null),\n cache = create(null),\n base = conf.memoized,\n original = conf.original,\n currentCallback,\n currentContext,\n currentArgs;\n conf.memoized = defineLength(function (arg) {\n var args = arguments,\n last = args[args.length - 1];\n\n if (typeof last === 'function') {\n currentCallback = last;\n args = slice.call(args, 0, -1);\n }\n\n return base.apply(currentContext = this, currentArgs = args);\n }, base);\n\n try {\n mixin(conf.memoized, base);\n } catch (ignore) {}\n\n conf.on('get', function (id) {\n var cb, context, args;\n\n if (!currentCallback) {\n return;\n }\n\n if (waiting[id]) {\n if (typeof waiting[id] === 'function') {\n waiting[id] = [waiting[id], currentCallback];\n } else {\n waiting[id].push(currentCallback);\n }\n\n currentCallback = null;\n return;\n }\n\n cb = currentCallback;\n context = currentContext;\n args = currentArgs;\n currentCallback = currentContext = currentArgs = null;\n nextTick(function () {\n var data;\n\n if (hasOwnProperty.call(cache, id)) {\n data = cache[id];\n conf.emit('getasync', id, args, context);\n apply.call(cb, data.context, data.args);\n } else {\n currentCallback = cb;\n currentContext = context;\n currentArgs = args;\n base.apply(context, args);\n }\n });\n });\n\n conf.original = function () {\n var args, cb, origCb, result;\n\n if (!currentCallback) {\n return apply.call(original, this, arguments);\n }\n\n args = aFrom(arguments);\n\n cb = function self(err) {\n var cb,\n args,\n id = self.id;\n\n if (id == null) {\n nextTick(apply.bind(self, this, arguments));\n return undefined;\n }\n\n delete self.id;\n cb = waiting[id];\n delete waiting[id];\n\n if (!cb) {\n return undefined;\n }\n\n args = aFrom(arguments);\n\n if (conf.has(id)) {\n if (err) {\n conf.delete(id);\n } else {\n cache[id] = {\n context: this,\n args: args\n };\n conf.emit('setasync', id, typeof cb === 'function' ? 1 : cb.length);\n }\n }\n\n if (typeof cb === 'function') {\n result = apply.call(cb, this, args);\n } else {\n cb.forEach(function (cb) {\n result = apply.call(cb, this, args);\n }, this);\n }\n\n return result;\n };\n\n origCb = currentCallback;\n currentCallback = currentContext = currentArgs = null;\n args.push(cb);\n result = apply.call(original, this, args);\n cb.cb = origCb;\n currentCallback = cb;\n return result;\n };\n\n conf.on('set', function (id) {\n if (!currentCallback) {\n conf.delete(id);\n return;\n }\n\n if (waiting[id]) {\n if (typeof waiting[id] === 'function') {\n waiting[id] = [waiting[id], currentCallback.cb];\n } else {\n waiting[id].push(currentCallback.cb);\n }\n } else {\n waiting[id] = currentCallback.cb;\n }\n\n delete currentCallback.cb;\n currentCallback.id = id;\n currentCallback = null;\n });\n conf.on('delete', function (id) {\n var result;\n\n if (hasOwnProperty.call(waiting, id)) {\n return;\n }\n\n if (!cache[id]) {\n return;\n }\n\n result = cache[id];\n delete cache[id];\n conf.emit('deleteasync', id, slice.call(result.args, 1));\n });\n conf.on('clear', function () {\n var oldCache = cache;\n cache = create(null);\n conf.emit('clearasync', objectMap(oldCache, function (data) {\n return slice.call(data.args, 1);\n }));\n });\n };\n }, {\n '../lib/registered-extensions': 225,\n 'es5-ext/array/from': 160,\n 'es5-ext/function/_define-length': 165,\n 'es5-ext/object/map': 188,\n 'es5-ext/object/mixin': 189,\n 'next-tick': 235\n }],\n 218: [function (_dereq_, module, exports) {\n 'use strict';\n\n var callable = _dereq_('es5-ext/object/valid-callable'),\n forEach = _dereq_('es5-ext/object/for-each'),\n extensions = _dereq_('../lib/registered-extensions'),\n apply = Function.prototype.apply;\n\n extensions.dispose = function (dispose, conf, options) {\n var del;\n callable(dispose);\n\n if (options.async && extensions.async || options.promise && extensions.promise) {\n conf.on('deleteasync', del = function del(id, resultArray) {\n apply.call(dispose, null, resultArray);\n });\n conf.on('clearasync', function (cache) {\n forEach(cache, function (result, id) {\n del(id, result);\n });\n });\n return;\n }\n\n conf.on('delete', del = function del(id, result) {\n dispose(result);\n });\n conf.on('clear', function (cache) {\n forEach(cache, function (result, id) {\n del(id, result);\n });\n });\n };\n }, {\n '../lib/registered-extensions': 225,\n 'es5-ext/object/for-each': 181,\n 'es5-ext/object/valid-callable': 192\n }],\n 219: [function (_dereq_, module, exports) {\n 'use strict';\n\n var aFrom = _dereq_('es5-ext/array/from'),\n forEach = _dereq_('es5-ext/object/for-each'),\n nextTick = _dereq_('next-tick'),\n isPromise = _dereq_('is-promise'),\n timeout = _dereq_('timers-ext/valid-timeout'),\n extensions = _dereq_('../lib/registered-extensions');\n\n var noop = Function.prototype,\n max = Math.max,\n min = Math.min,\n create = Object.create;\n\n extensions.maxAge = function (maxAge, conf, options) {\n var timeouts, postfix, preFetchAge, preFetchTimeouts;\n maxAge = timeout(maxAge);\n\n if (!maxAge) {\n return;\n }\n\n timeouts = create(null);\n postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n conf.on('set' + postfix, function (id) {\n timeouts[id] = setTimeout(function () {\n conf.delete(id);\n }, maxAge);\n\n if (typeof timeouts[id].unref === 'function') {\n timeouts[id].unref();\n }\n\n if (!preFetchTimeouts) {\n return;\n }\n\n if (preFetchTimeouts[id]) {\n if (preFetchTimeouts[id] !== 'nextTick') {\n clearTimeout(preFetchTimeouts[id]);\n }\n }\n\n preFetchTimeouts[id] = setTimeout(function () {\n delete preFetchTimeouts[id];\n }, preFetchAge);\n\n if (typeof preFetchTimeouts[id].unref === 'function') {\n preFetchTimeouts[id].unref();\n }\n });\n conf.on('delete' + postfix, function (id) {\n clearTimeout(timeouts[id]);\n delete timeouts[id];\n\n if (!preFetchTimeouts) {\n return;\n }\n\n if (preFetchTimeouts[id] !== 'nextTick') {\n clearTimeout(preFetchTimeouts[id]);\n }\n\n delete preFetchTimeouts[id];\n });\n\n if (options.preFetch) {\n if (options.preFetch === true || isNaN(options.preFetch)) {\n preFetchAge = .333;\n } else {\n preFetchAge = max(min(Number(options.preFetch), 1), 0);\n }\n\n if (preFetchAge) {\n preFetchTimeouts = {};\n preFetchAge = (1 - preFetchAge) * maxAge;\n conf.on('get' + postfix, function (id, args, context) {\n if (!preFetchTimeouts[id]) {\n preFetchTimeouts[id] = 'nextTick';\n nextTick(function () {\n var result;\n\n if (preFetchTimeouts[id] !== 'nextTick') {\n return;\n }\n\n delete preFetchTimeouts[id];\n conf.delete(id);\n\n if (options.async) {\n args = aFrom(args);\n args.push(noop);\n }\n\n result = conf.memoized.apply(context, args);\n\n if (options.promise) {\n if (isPromise(result)) {\n if (typeof result.done === 'function') {\n result.done(noop, noop);\n } else {\n result.then(noop, noop);\n }\n }\n }\n });\n }\n });\n }\n }\n\n conf.on('clear' + postfix, function () {\n forEach(timeouts, function (id) {\n clearTimeout(id);\n });\n timeouts = {};\n\n if (preFetchTimeouts) {\n forEach(preFetchTimeouts, function (id) {\n if (id !== 'nextTick') {\n clearTimeout(id);\n }\n });\n preFetchTimeouts = {};\n }\n });\n };\n }, {\n '../lib/registered-extensions': 225,\n 'es5-ext/array/from': 160,\n 'es5-ext/object/for-each': 181,\n 'is-promise': 215,\n 'next-tick': 235,\n 'timers-ext/valid-timeout': 239\n }],\n 220: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toPosInteger = _dereq_('es5-ext/number/to-pos-integer'),\n lruQueue = _dereq_('lru-queue'),\n extensions = _dereq_('../lib/registered-extensions');\n\n extensions.max = function (max, conf, options) {\n var postfix, queue, hit;\n max = toPosInteger(max);\n\n if (!max) {\n return;\n }\n\n queue = lruQueue(max);\n postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n conf.on('set' + postfix, hit = function hit(id) {\n id = queue.hit(id);\n\n if (id === undefined) {\n return;\n }\n\n conf.delete(id);\n });\n conf.on('get' + postfix, hit);\n conf.on('delete' + postfix, queue.delete);\n conf.on('clear' + postfix, queue.clear);\n };\n }, {\n '../lib/registered-extensions': 225,\n 'es5-ext/number/to-pos-integer': 176,\n 'lru-queue': 216\n }],\n 221: [function (_dereq_, module, exports) {\n 'use strict';\n\n var objectMap = _dereq_('es5-ext/object/map'),\n primitiveSet = _dereq_('es5-ext/object/primitive-set'),\n ensureString = _dereq_('es5-ext/object/validate-stringifiable-value'),\n toShortString = _dereq_('es5-ext/to-short-string-representation'),\n isPromise = _dereq_('is-promise'),\n nextTick = _dereq_('next-tick');\n\n var create = Object.create,\n supportedModes = primitiveSet('then', 'then:finally', 'done', 'done:finally');\n\n _dereq_('../lib/registered-extensions').promise = function (mode, conf) {\n var waiting = create(null),\n cache = create(null),\n promises = create(null);\n\n if (mode === true) {\n mode = null;\n } else {\n mode = ensureString(mode);\n\n if (!supportedModes[mode]) {\n throw new TypeError('\\'' + toShortString(mode) + '\\' is not valid promise mode');\n }\n }\n\n conf.on('set', function (id, ignore, promise) {\n var isFailed = false;\n\n if (!isPromise(promise)) {\n cache[id] = promise;\n conf.emit('setasync', id, 1);\n return;\n }\n\n waiting[id] = 1;\n promises[id] = promise;\n\n var onSuccess = function onSuccess(result) {\n var count = waiting[id];\n\n if (isFailed) {\n throw new Error('Memoizee error: Detected unordered then|done & finally resolution, which ' + 'in turn makes proper detection of success/failure impossible (when in ' + '\\'done:finally\\' mode)\\n' + 'Consider to rely on \\'then\\' or \\'done\\' mode instead.');\n }\n\n if (!count) {\n return;\n }\n\n delete waiting[id];\n cache[id] = result;\n conf.emit('setasync', id, count);\n };\n\n var onFailure = function onFailure() {\n isFailed = true;\n\n if (!waiting[id]) {\n return;\n }\n\n delete waiting[id];\n delete promises[id];\n conf.delete(id);\n };\n\n var resolvedMode = mode;\n\n if (!resolvedMode) {\n resolvedMode = 'then';\n }\n\n if (resolvedMode === 'then') {\n var nextTickFailure = function nextTickFailure() {\n nextTick(onFailure);\n };\n\n promise = promise.then(function (result) {\n nextTick(onSuccess.bind(this, result));\n }, nextTickFailure);\n\n if (typeof promise.finally === 'function') {\n promise.finally(nextTickFailure);\n }\n } else if (resolvedMode === 'done') {\n if (typeof promise.done !== 'function') {\n throw new Error('Memoizee error: Retrieved promise does not implement \\'done\\' ' + 'in \\'done\\' mode');\n }\n\n promise.done(onSuccess, onFailure);\n } else if (resolvedMode === 'done:finally') {\n if (typeof promise.done !== 'function') {\n throw new Error('Memoizee error: Retrieved promise does not implement \\'done\\' ' + 'in \\'done:finally\\' mode');\n }\n\n if (typeof promise.finally !== 'function') {\n throw new Error('Memoizee error: Retrieved promise does not implement \\'finally\\' ' + 'in \\'done:finally\\' mode');\n }\n\n promise.done(onSuccess);\n promise.finally(onFailure);\n }\n });\n conf.on('get', function (id, args, context) {\n var promise;\n\n if (waiting[id]) {\n ++waiting[id];\n return;\n }\n\n promise = promises[id];\n\n var emit = function emit() {\n conf.emit('getasync', id, args, context);\n };\n\n if (isPromise(promise)) {\n if (typeof promise.done === 'function') {\n promise.done(emit);\n } else {\n promise.then(function () {\n nextTick(emit);\n });\n }\n } else {\n emit();\n }\n });\n conf.on('delete', function (id) {\n delete promises[id];\n\n if (waiting[id]) {\n delete waiting[id];\n return;\n }\n\n if (!hasOwnProperty.call(cache, id)) {\n return;\n }\n\n var result = cache[id];\n delete cache[id];\n conf.emit('deleteasync', id, [result]);\n });\n conf.on('clear', function () {\n var oldCache = cache;\n cache = create(null);\n waiting = create(null);\n promises = create(null);\n conf.emit('clearasync', objectMap(oldCache, function (data) {\n return [data];\n }));\n });\n };\n }, {\n '../lib/registered-extensions': 225,\n 'es5-ext/object/map': 188,\n 'es5-ext/object/primitive-set': 191,\n 'es5-ext/object/validate-stringifiable-value': 194,\n 'es5-ext/to-short-string-representation': 201,\n 'is-promise': 215,\n 'next-tick': 235\n }],\n 222: [function (_dereq_, module, exports) {\n 'use strict';\n\n var d = _dereq_('d'),\n extensions = _dereq_('../lib/registered-extensions'),\n create = Object.create,\n defineProperties = Object.defineProperties;\n\n extensions.refCounter = function (ignore, conf, options) {\n var cache, postfix;\n cache = create(null);\n postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n conf.on('set' + postfix, function (id, length) {\n cache[id] = length || 1;\n });\n conf.on('get' + postfix, function (id) {\n ++cache[id];\n });\n conf.on('delete' + postfix, function (id) {\n delete cache[id];\n });\n conf.on('clear' + postfix, function () {\n cache = {};\n });\n defineProperties(conf.memoized, {\n deleteRef: d(function () {\n var id = conf.get(arguments);\n\n if (id === null) {\n return null;\n }\n\n if (!cache[id]) {\n return null;\n }\n\n if (! --cache[id]) {\n conf.delete(id);\n return true;\n }\n\n return false;\n }),\n getRefCount: d(function () {\n var id = conf.get(arguments);\n\n if (id === null) {\n return 0;\n }\n\n if (!cache[id]) {\n return 0;\n }\n\n return cache[id];\n })\n });\n };\n }, {\n '../lib/registered-extensions': 225,\n d: 157\n }],\n 223: [function (_dereq_, module, exports) {\n 'use strict';\n\n var normalizeOpts = _dereq_('es5-ext/object/normalize-options'),\n resolveLength = _dereq_('./lib/resolve-length'),\n plain = _dereq_('./plain');\n\n module.exports = function (fn) {\n var options = normalizeOpts(arguments[1]),\n length;\n\n if (!options.normalizer) {\n length = options.length = resolveLength(options.length, fn.length, options.async);\n\n if (length !== 0) {\n if (options.primitive) {\n if (length === false) {\n options.normalizer = _dereq_('./normalizers/primitive');\n } else if (length > 1) {\n options.normalizer = _dereq_('./normalizers/get-primitive-fixed')(length);\n }\n } else if (length === false) {\n options.normalizer = _dereq_('./normalizers/get')();\n } else if (length === 1) {\n options.normalizer = _dereq_('./normalizers/get-1')();\n } else {\n options.normalizer = _dereq_('./normalizers/get-fixed')(length);\n }\n }\n }\n\n if (options.async) {\n _dereq_('./ext/async');\n }\n\n if (options.promise) {\n _dereq_('./ext/promise');\n }\n\n if (options.dispose) {\n _dereq_('./ext/dispose');\n }\n\n if (options.maxAge) {\n _dereq_('./ext/max-age');\n }\n\n if (options.max) {\n _dereq_('./ext/max');\n }\n\n if (options.refCounter) {\n _dereq_('./ext/ref-counter');\n }\n\n return plain(fn, options);\n };\n }, {\n './ext/async': 217,\n './ext/dispose': 218,\n './ext/max': 220,\n './ext/max-age': 219,\n './ext/promise': 221,\n './ext/ref-counter': 222,\n './lib/resolve-length': 226,\n './normalizers/get': 232,\n './normalizers/get-1': 229,\n './normalizers/get-fixed': 230,\n './normalizers/get-primitive-fixed': 231,\n './normalizers/primitive': 233,\n './plain': 234,\n 'es5-ext/object/normalize-options': 190\n }],\n 224: [function (_dereq_, module, exports) {\n 'use strict';\n\n var customError = _dereq_('es5-ext/error/custom'),\n defineLength = _dereq_('es5-ext/function/_define-length'),\n d = _dereq_('d'),\n ee = _dereq_('event-emitter').methods,\n resolveResolve = _dereq_('./resolve-resolve'),\n resolveNormalize = _dereq_('./resolve-normalize');\n\n var apply = Function.prototype.apply,\n call = Function.prototype.call,\n create = Object.create,\n defineProperties = Object.defineProperties,\n _on = ee.on,\n emit = ee.emit;\n\n module.exports = function (original, length, options) {\n var cache = create(null),\n conf,\n memLength,\n _get,\n set,\n del,\n _clear,\n extDel,\n extGet,\n extHas,\n normalizer,\n getListeners,\n setListeners,\n deleteListeners,\n memoized,\n resolve;\n\n if (length !== false) {\n memLength = length;\n } else if (isNaN(original.length)) {\n memLength = 1;\n } else {\n memLength = original.length;\n }\n\n if (options.normalizer) {\n normalizer = resolveNormalize(options.normalizer);\n _get = normalizer.get;\n set = normalizer.set;\n del = normalizer.delete;\n _clear = normalizer.clear;\n }\n\n if (options.resolvers != null) {\n resolve = resolveResolve(options.resolvers);\n }\n\n if (_get) {\n memoized = defineLength(function (arg) {\n var id,\n result,\n args = arguments;\n\n if (resolve) {\n args = resolve(args);\n }\n\n id = _get(args);\n\n if (id !== null) {\n if (hasOwnProperty.call(cache, id)) {\n if (getListeners) {\n conf.emit('get', id, args, this);\n }\n\n return cache[id];\n }\n }\n\n if (args.length === 1) {\n result = call.call(original, this, args[0]);\n } else {\n result = apply.call(original, this, args);\n }\n\n if (id === null) {\n id = _get(args);\n\n if (id !== null) {\n throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n }\n\n id = set(args);\n } else if (hasOwnProperty.call(cache, id)) {\n throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n }\n\n cache[id] = result;\n\n if (setListeners) {\n conf.emit('set', id, null, result);\n }\n\n return result;\n }, memLength);\n } else if (length === 0) {\n memoized = function memoized() {\n var result;\n\n if (hasOwnProperty.call(cache, 'data')) {\n if (getListeners) {\n conf.emit('get', 'data', arguments, this);\n }\n\n return cache.data;\n }\n\n if (arguments.length) {\n result = apply.call(original, this, arguments);\n } else {\n result = call.call(original, this);\n }\n\n if (hasOwnProperty.call(cache, 'data')) {\n throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n }\n\n cache.data = result;\n\n if (setListeners) {\n conf.emit('set', 'data', null, result);\n }\n\n return result;\n };\n } else {\n memoized = function memoized(arg) {\n var result,\n args = arguments,\n id;\n\n if (resolve) {\n args = resolve(arguments);\n }\n\n id = String(args[0]);\n\n if (hasOwnProperty.call(cache, id)) {\n if (getListeners) {\n conf.emit('get', id, args, this);\n }\n\n return cache[id];\n }\n\n if (args.length === 1) {\n result = call.call(original, this, args[0]);\n } else {\n result = apply.call(original, this, args);\n }\n\n if (hasOwnProperty.call(cache, id)) {\n throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n }\n\n cache[id] = result;\n\n if (setListeners) {\n conf.emit('set', id, null, result);\n }\n\n return result;\n };\n }\n\n conf = {\n original: original,\n memoized: memoized,\n profileName: options.profileName,\n get: function get(args) {\n if (resolve) {\n args = resolve(args);\n }\n\n if (_get) {\n return _get(args);\n }\n\n return String(args[0]);\n },\n has: function has(id) {\n return hasOwnProperty.call(cache, id);\n },\n delete: function _delete(id) {\n var result;\n\n if (!hasOwnProperty.call(cache, id)) {\n return;\n }\n\n if (del) {\n del(id);\n }\n\n result = cache[id];\n delete cache[id];\n\n if (deleteListeners) {\n conf.emit('delete', id, result);\n }\n },\n clear: function clear() {\n var oldCache = cache;\n\n if (_clear) {\n _clear();\n }\n\n cache = create(null);\n conf.emit('clear', oldCache);\n },\n on: function on(type, listener) {\n if (type === 'get') {\n getListeners = true;\n } else if (type === 'set') {\n setListeners = true;\n } else if (type === 'delete') {\n deleteListeners = true;\n }\n\n return _on.call(this, type, listener);\n },\n emit: emit,\n updateEnv: function updateEnv() {\n original = conf.original;\n }\n };\n\n if (_get) {\n extDel = defineLength(function (arg) {\n var id,\n args = arguments;\n\n if (resolve) {\n args = resolve(args);\n }\n\n id = _get(args);\n\n if (id === null) {\n return;\n }\n\n conf.delete(id);\n }, memLength);\n } else if (length === 0) {\n extDel = function extDel() {\n return conf.delete('data');\n };\n } else {\n extDel = function extDel(arg) {\n if (resolve) {\n arg = resolve(arguments)[0];\n }\n\n return conf.delete(arg);\n };\n }\n\n extGet = defineLength(function () {\n var id,\n args = arguments;\n\n if (length === 0) {\n return cache.data;\n }\n\n if (resolve) {\n args = resolve(args);\n }\n\n if (_get) {\n id = _get(args);\n } else {\n id = String(args[0]);\n }\n\n return cache[id];\n });\n extHas = defineLength(function () {\n var id,\n args = arguments;\n\n if (length === 0) {\n return conf.has('data');\n }\n\n if (resolve) {\n args = resolve(args);\n }\n\n if (_get) {\n id = _get(args);\n } else {\n id = String(args[0]);\n }\n\n if (id === null) {\n return false;\n }\n\n return conf.has(id);\n });\n defineProperties(memoized, {\n __memoized__: d(true),\n delete: d(extDel),\n clear: d(conf.clear),\n _get: d(extGet),\n _has: d(extHas)\n });\n return conf;\n };\n }, {\n './resolve-normalize': 227,\n './resolve-resolve': 228,\n d: 157,\n 'es5-ext/error/custom': 164,\n 'es5-ext/function/_define-length': 165,\n 'event-emitter': 211\n }],\n 225: [function (_dereq_, module, exports) {\n 'use strict';\n }, {}],\n 226: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toPosInt = _dereq_('es5-ext/number/to-pos-integer');\n\n module.exports = function (optsLength, fnLength, isAsync) {\n var length;\n\n if (isNaN(optsLength)) {\n length = fnLength;\n\n if (!(length >= 0)) {\n return 1;\n }\n\n if (isAsync && length) {\n return length - 1;\n }\n\n return length;\n }\n\n if (optsLength === false) {\n return false;\n }\n\n return toPosInt(optsLength);\n };\n }, {\n 'es5-ext/number/to-pos-integer': 176\n }],\n 227: [function (_dereq_, module, exports) {\n 'use strict';\n\n var callable = _dereq_('es5-ext/object/valid-callable');\n\n module.exports = function (userNormalizer) {\n var normalizer;\n\n if (typeof userNormalizer === 'function') {\n return {\n set: userNormalizer,\n get: userNormalizer\n };\n }\n\n normalizer = {\n get: callable(userNormalizer.get)\n };\n\n if (userNormalizer.set !== undefined) {\n normalizer.set = callable(userNormalizer.set);\n\n if (userNormalizer.delete) {\n normalizer.delete = callable(userNormalizer.delete);\n }\n\n if (userNormalizer.clear) {\n normalizer.clear = callable(userNormalizer.clear);\n }\n\n return normalizer;\n }\n\n normalizer.set = normalizer.get;\n return normalizer;\n };\n }, {\n 'es5-ext/object/valid-callable': 192\n }],\n 228: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toArray = _dereq_('es5-ext/array/to-array'),\n isValue = _dereq_('es5-ext/object/is-value'),\n callable = _dereq_('es5-ext/object/valid-callable');\n\n var slice = Array.prototype.slice,\n resolveArgs;\n\n resolveArgs = function resolveArgs(args) {\n return this.map(function (resolve, i) {\n return resolve ? resolve(args[i]) : args[i];\n }).concat(slice.call(args, this.length));\n };\n\n module.exports = function (resolvers) {\n resolvers = toArray(resolvers);\n resolvers.forEach(function (resolve) {\n if (isValue(resolve)) {\n callable(resolve);\n }\n });\n return resolveArgs.bind(resolvers);\n };\n }, {\n 'es5-ext/array/to-array': 163,\n 'es5-ext/object/is-value': 184,\n 'es5-ext/object/valid-callable': 192\n }],\n 229: [function (_dereq_, module, exports) {\n 'use strict';\n\n var indexOf = _dereq_('es5-ext/array/#/e-index-of');\n\n module.exports = function () {\n var lastId = 0,\n argsMap = [],\n cache = [];\n return {\n get: function get(args) {\n var index = indexOf.call(argsMap, args[0]);\n return index === -1 ? null : cache[index];\n },\n set: function set(args) {\n argsMap.push(args[0]);\n cache.push(++lastId);\n return lastId;\n },\n delete: function _delete(id) {\n var index = indexOf.call(cache, id);\n\n if (index !== -1) {\n argsMap.splice(index, 1);\n cache.splice(index, 1);\n }\n },\n clear: function clear() {\n argsMap = [];\n cache = [];\n }\n };\n };\n }, {\n 'es5-ext/array/#/e-index-of': 159\n }],\n 230: [function (_dereq_, module, exports) {\n 'use strict';\n\n var indexOf = _dereq_('es5-ext/array/#/e-index-of'),\n create = Object.create;\n\n module.exports = function (length) {\n var lastId = 0,\n map = [[], []],\n cache = create(null);\n return {\n get: function get(args) {\n var index = 0,\n set = map,\n i;\n\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return null;\n }\n\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return null;\n }\n\n return set[1][i] || null;\n },\n set: function set(args) {\n var index = 0,\n set = map,\n i;\n\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n i = set[0].push(args[index]) - 1;\n set[1].push([[], []]);\n }\n\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n i = set[0].push(args[index]) - 1;\n }\n\n set[1][i] = ++lastId;\n cache[lastId] = args;\n return lastId;\n },\n delete: function _delete(id) {\n var index = 0,\n set = map,\n i,\n path = [],\n args = cache[id];\n\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return;\n }\n\n path.push(set, i);\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return;\n }\n\n id = set[1][i];\n set[0].splice(i, 1);\n set[1].splice(i, 1);\n\n while (!set[0].length && path.length) {\n i = path.pop();\n set = path.pop();\n set[0].splice(i, 1);\n set[1].splice(i, 1);\n }\n\n delete cache[id];\n },\n clear: function clear() {\n map = [[], []];\n cache = create(null);\n }\n };\n };\n }, {\n 'es5-ext/array/#/e-index-of': 159\n }],\n 231: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (length) {\n if (!length) {\n return function () {\n return '';\n };\n }\n\n return function (args) {\n var id = String(args[0]),\n i = 0,\n currentLength = length;\n\n while (--currentLength) {\n id += '\\x01' + args[++i];\n }\n\n return id;\n };\n };\n }, {}],\n 232: [function (_dereq_, module, exports) {\n 'use strict';\n\n var indexOf = _dereq_('es5-ext/array/#/e-index-of');\n\n var create = Object.create;\n\n module.exports = function () {\n var lastId = 0,\n map = [],\n cache = create(null);\n return {\n get: function get(args) {\n var index = 0,\n set = map,\n i,\n length = args.length;\n\n if (length === 0) {\n return set[length] || null;\n }\n\n if (set = set[length]) {\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return null;\n }\n\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return null;\n }\n\n return set[1][i] || null;\n }\n\n return null;\n },\n set: function set(args) {\n var index = 0,\n set = map,\n i,\n length = args.length;\n\n if (length === 0) {\n set[length] = ++lastId;\n } else {\n if (!set[length]) {\n set[length] = [[], []];\n }\n\n set = set[length];\n\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n i = set[0].push(args[index]) - 1;\n set[1].push([[], []]);\n }\n\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n i = set[0].push(args[index]) - 1;\n }\n\n set[1][i] = ++lastId;\n }\n\n cache[lastId] = args;\n return lastId;\n },\n delete: function _delete(id) {\n var index = 0,\n set = map,\n i,\n args = cache[id],\n length = args.length,\n path = [];\n\n if (length === 0) {\n delete set[length];\n } else if (set = set[length]) {\n while (index < length - 1) {\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return;\n }\n\n path.push(set, i);\n set = set[1][i];\n ++index;\n }\n\n i = indexOf.call(set[0], args[index]);\n\n if (i === -1) {\n return;\n }\n\n id = set[1][i];\n set[0].splice(i, 1);\n set[1].splice(i, 1);\n\n while (!set[0].length && path.length) {\n i = path.pop();\n set = path.pop();\n set[0].splice(i, 1);\n set[1].splice(i, 1);\n }\n }\n\n delete cache[id];\n },\n clear: function clear() {\n map = [];\n cache = create(null);\n }\n };\n };\n }, {\n 'es5-ext/array/#/e-index-of': 159\n }],\n 233: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = function (args) {\n var id,\n i,\n length = args.length;\n\n if (!length) {\n return '\\x02';\n }\n\n id = String(args[i = 0]);\n\n while (--length) {\n id += '\\x01' + args[++i];\n }\n\n return id;\n };\n }, {}],\n 234: [function (_dereq_, module, exports) {\n 'use strict';\n\n var callable = _dereq_('es5-ext/object/valid-callable'),\n forEach = _dereq_('es5-ext/object/for-each'),\n extensions = _dereq_('./lib/registered-extensions'),\n configure = _dereq_('./lib/configure-map'),\n resolveLength = _dereq_('./lib/resolve-length');\n\n module.exports = function self(fn) {\n var options, length, conf;\n callable(fn);\n options = Object(arguments[1]);\n\n if (options.async && options.promise) {\n throw new Error('Options \\'async\\' and \\'promise\\' cannot be used together');\n }\n\n if (hasOwnProperty.call(fn, '__memoized__') && !options.force) {\n return fn;\n }\n\n length = resolveLength(options.length, fn.length, options.async && extensions.async);\n conf = configure(fn, length, options);\n forEach(extensions, function (extFn, name) {\n if (options[name]) {\n extFn(options[name], conf, options);\n }\n });\n\n if (self.__profiler__) {\n self.__profiler__(conf);\n }\n\n conf.updateEnv();\n return conf.memoized;\n };\n }, {\n './lib/configure-map': 224,\n './lib/registered-extensions': 225,\n './lib/resolve-length': 226,\n 'es5-ext/object/for-each': 181,\n 'es5-ext/object/valid-callable': 192\n }],\n 235: [function (_dereq_, module, exports) {\n (function (process, setImmediate) {\n 'use strict';\n\n var callable, byObserver;\n\n callable = function callable(fn) {\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n\n return fn;\n };\n\n byObserver = function byObserver(Observer) {\n var node = document.createTextNode(''),\n queue,\n currentQueue,\n i = 0;\n new Observer(function () {\n var callback;\n\n if (!queue) {\n if (!currentQueue) {\n return;\n }\n\n queue = currentQueue;\n } else if (currentQueue) {\n queue = currentQueue.concat(queue);\n }\n\n currentQueue = queue;\n queue = null;\n\n if (typeof currentQueue === 'function') {\n callback = currentQueue;\n currentQueue = null;\n callback();\n return;\n }\n\n node.data = i = ++i % 2;\n\n while (currentQueue) {\n callback = currentQueue.shift();\n\n if (!currentQueue.length) {\n currentQueue = null;\n }\n\n callback();\n }\n }).observe(node, {\n characterData: true\n });\n return function (fn) {\n callable(fn);\n\n if (queue) {\n if (typeof queue === 'function') {\n queue = [queue, fn];\n } else {\n queue.push(fn);\n }\n\n return;\n }\n\n queue = fn;\n node.data = i = ++i % 2;\n };\n };\n\n module.exports = function () {\n if (typeof process === 'object' && process && typeof process.nextTick === 'function') {\n return process.nextTick;\n }\n\n if (typeof document === 'object' && document) {\n if (typeof MutationObserver === 'function') {\n return byObserver(MutationObserver);\n }\n\n if (typeof WebKitMutationObserver === 'function') {\n return byObserver(WebKitMutationObserver);\n }\n }\n\n if (typeof setImmediate === 'function') {\n return function (cb) {\n setImmediate(callable(cb));\n };\n }\n\n if (typeof setTimeout === 'function' || typeof setTimeout === 'object') {\n return function (cb) {\n setTimeout(callable(cb), 0);\n };\n }\n\n return null;\n }();\n }).call(this, _dereq_('_process'), _dereq_('timers').setImmediate);\n }, {\n _process: 236,\n timers: 237\n }],\n 236: [function (_dereq_, module, exports) {\n var process = module.exports = {};\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = '';\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n\n process.cwd = function () {\n return '/';\n };\n\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n\n process.umask = function () {\n return 0;\n };\n }, {}],\n 237: [function (_dereq_, module, exports) {\n (function (setImmediate, clearImmediate) {\n var nextTick = _dereq_('process/browser.js').nextTick;\n\n var apply = Function.prototype.apply;\n var slice = Array.prototype.slice;\n var immediateIds = {};\n var nextImmediateId = 0;\n\n exports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n };\n\n exports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n };\n\n exports.clearTimeout = exports.clearInterval = function (timeout) {\n timeout.close();\n };\n\n function Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n }\n\n Timeout.prototype.unref = Timeout.prototype.ref = function () {};\n\n Timeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n };\n\n exports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n };\n\n exports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n };\n\n exports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) {\n item._onTimeout();\n }\n }, msecs);\n }\n };\n\n exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n immediateIds[id] = true;\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n\n exports.clearImmediate(id);\n }\n });\n return id;\n };\n exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {\n delete immediateIds[id];\n };\n }).call(this, _dereq_('timers').setImmediate, _dereq_('timers').clearImmediate);\n }, {\n 'process/browser.js': 236,\n timers: 237\n }],\n 238: [function (_dereq_, module, exports) {\n 'use strict';\n\n module.exports = 2147483647;\n }, {}],\n 239: [function (_dereq_, module, exports) {\n 'use strict';\n\n var toPosInt = _dereq_('es5-ext/number/to-pos-integer'),\n maxTimeout = _dereq_('./max-timeout');\n\n module.exports = function (value) {\n value = toPosInt(value);\n\n if (value > maxTimeout) {\n throw new TypeError(value + ' exceeds maximum possible timeout');\n }\n\n return value;\n };\n }, {\n './max-timeout': 238,\n 'es5-ext/number/to-pos-integer': 176\n }],\n 240: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isPrototype = _dereq_('../prototype/is');\n\n module.exports = function (value) {\n if (typeof value !== 'function') {\n return false;\n }\n\n if (!hasOwnProperty.call(value, 'length')) {\n return false;\n }\n\n try {\n if (typeof value.length !== 'number') {\n return false;\n }\n\n if (typeof value.call !== 'function') {\n return false;\n }\n\n if (typeof value.apply !== 'function') {\n return false;\n }\n } catch (error) {\n return false;\n }\n\n return !isPrototype(value);\n };\n }, {\n '../prototype/is': 243\n }],\n 241: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isValue = _dereq_('../value/is');\n\n var possibleTypes = {\n object: true,\n function: true,\n undefined: true\n };\n\n module.exports = function (value) {\n if (!isValue(value)) {\n return false;\n }\n\n return hasOwnProperty.call(possibleTypes, typeof value);\n };\n }, {\n '../value/is': 244\n }],\n 242: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isFunction = _dereq_('../function/is');\n\n var classRe = /^\\s*class[\\s{/}]/,\n functionToString = Function.prototype.toString;\n\n module.exports = function (value) {\n if (!isFunction(value)) {\n return false;\n }\n\n if (classRe.test(functionToString.call(value))) {\n return false;\n }\n\n return true;\n };\n }, {\n '../function/is': 240\n }],\n 243: [function (_dereq_, module, exports) {\n 'use strict';\n\n var isObject = _dereq_('../object/is');\n\n module.exports = function (value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n if (!value.constructor) {\n return false;\n }\n\n return value.constructor.prototype === value;\n } catch (error) {\n return false;\n }\n };\n }, {\n '../object/is': 241\n }],\n 244: [function (_dereq_, module, exports) {\n 'use strict';\n\n var _undefined = void 0;\n\n module.exports = function (value) {\n return value !== _undefined && value !== null;\n };\n }, {}],\n 245: [function (_dereq_, module, exports) {\n (function (global) {\n (function (self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n var defineProperty = function defineProperty(object, name, value) {\n if (Object.defineProperty) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = function () {\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError('Constructor WeakMap requires \\'new\\'');\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n if (arguments.length > 0) {\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n defineProperty(WeakMap.prototype, 'delete', function (key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n defineProperty(WeakMap.prototype, 'get', function (key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n defineProperty(WeakMap.prototype, 'has', function (key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n defineProperty(WeakMap.prototype, 'set', function (key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(methodName + ' method called on incompatible receiver ' + typeof x);\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n }();\n\n function isObject(x) {\n return Object(x) === x;\n }\n })(typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this);\n }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {});\n }, {}]\n }, {}, [1]);\n 'use strict';\n\n var utils = axe.utils = {};\n 'use strict';\n\n var helpers = {};\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n var dotRegex = /\\{\\{.+?\\}\\}/g;\n\n function getDefaultConfiguration(audit) {\n 'use strict';\n\n var config;\n\n if (audit) {\n config = axe.utils.clone(audit);\n config.commons = audit.commons;\n } else {\n config = {};\n }\n\n config.reporter = config.reporter || null;\n config.rules = config.rules || [];\n config.checks = config.checks || [];\n config.data = _extends({\n checks: {},\n rules: {}\n }, config.data);\n return config;\n }\n\n function unpackToObject(collection, audit, method) {\n 'use strict';\n\n var i, l;\n\n for (i = 0, l = collection.length; i < l; i++) {\n audit[method](collection[i]);\n }\n }\n\n function Audit(audit) {\n this.brand = 'axe';\n this.application = 'axeAPI';\n this.tagExclude = ['experimental'];\n this.lang = 'en';\n this.defaultConfig = audit;\n\n this._init();\n\n this._defaultLocale = null;\n }\n\n Audit.prototype._setDefaultLocale = function () {\n if (this._defaultLocale) {\n return;\n }\n\n var locale = {\n checks: {},\n rules: {},\n failureSummaries: {},\n incompleteFallbackMessage: '',\n lang: this.lang\n };\n var checkIDs = Object.keys(this.data.checks);\n\n for (var i = 0; i < checkIDs.length; i++) {\n var id = checkIDs[i];\n var check = this.data.checks[id];\n var _check$messages = check.messages,\n pass = _check$messages.pass,\n fail = _check$messages.fail,\n incomplete = _check$messages.incomplete;\n locale.checks[id] = {\n pass: pass,\n fail: fail,\n incomplete: incomplete\n };\n }\n\n var ruleIDs = Object.keys(this.data.rules);\n\n for (var _i = 0; _i < ruleIDs.length; _i++) {\n var _id = ruleIDs[_i];\n var rule = this.data.rules[_id];\n var description = rule.description,\n help = rule.help;\n locale.rules[_id] = {\n description: description,\n help: help\n };\n }\n\n var failureSummaries = Object.keys(this.data.failureSummaries);\n\n for (var _i2 = 0; _i2 < failureSummaries.length; _i2++) {\n var type = failureSummaries[_i2];\n var failureSummary = this.data.failureSummaries[type];\n var failureMessage = failureSummary.failureMessage;\n locale.failureSummaries[type] = {\n failureMessage: failureMessage\n };\n }\n\n locale.incompleteFallbackMessage = this.data.incompleteFallbackMessage;\n this._defaultLocale = locale;\n };\n\n Audit.prototype._resetLocale = function () {\n var defaultLocale = this._defaultLocale;\n\n if (!defaultLocale) {\n return;\n }\n\n this.applyLocale(defaultLocale);\n };\n\n var mergeCheckLocale = function mergeCheckLocale(a, b) {\n var pass = b.pass,\n fail = b.fail;\n\n if (typeof pass === 'string' && dotRegex.test(pass)) {\n pass = axe.imports.doT.compile(pass);\n }\n\n if (typeof fail === 'string' && dotRegex.test(fail)) {\n fail = axe.imports.doT.compile(fail);\n }\n\n return _extends({}, a, {\n messages: {\n pass: pass || a.messages.pass,\n fail: fail || a.messages.fail,\n incomplete: _typeof(a.messages.incomplete) === 'object' ? _extends({}, a.messages.incomplete, {}, b.incomplete) : b.incomplete\n }\n });\n };\n\n var mergeRuleLocale = function mergeRuleLocale(a, b) {\n var help = b.help,\n description = b.description;\n\n if (typeof help === 'string' && dotRegex.test(help)) {\n help = axe.imports.doT.compile(help);\n }\n\n if (typeof description === 'string' && dotRegex.test(description)) {\n description = axe.imports.doT.compile(description);\n }\n\n return _extends({}, a, {\n help: help || a.help,\n description: description || a.description\n });\n };\n\n var mergeFailureMessage = function mergeFailureMessage(a, b) {\n var failureMessage = b.failureMessage;\n\n if (typeof failureMessage === 'string' && dotRegex.test(failureMessage)) {\n failureMessage = axe.imports.doT.compile(failureMessage);\n }\n\n return _extends({}, a, {\n failureMessage: failureMessage || a.failureMessage\n });\n };\n\n var mergeFallbackMessage = function mergeFallbackMessage(a, b) {\n if (typeof b === 'string' && dotRegex.test(b)) {\n b = axe.imports.doT.compile(b);\n }\n\n return b || a;\n };\n\n Audit.prototype._applyCheckLocale = function (checks) {\n var keys = Object.keys(checks);\n\n for (var i = 0; i < keys.length; i++) {\n var id = keys[i];\n\n if (!this.data.checks[id]) {\n throw new Error('Locale provided for unknown check: \"'.concat(id, '\"'));\n }\n\n this.data.checks[id] = mergeCheckLocale(this.data.checks[id], checks[id]);\n }\n };\n\n Audit.prototype._applyRuleLocale = function (rules) {\n var keys = Object.keys(rules);\n\n for (var i = 0; i < keys.length; i++) {\n var id = keys[i];\n\n if (!this.data.rules[id]) {\n throw new Error('Locale provided for unknown rule: \"'.concat(id, '\"'));\n }\n\n this.data.rules[id] = mergeRuleLocale(this.data.rules[id], rules[id]);\n }\n };\n\n Audit.prototype._applyFailureSummaries = function (messages) {\n var keys = Object.keys(messages);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (!this.data.failureSummaries[key]) {\n throw new Error('Locale provided for unknown failureMessage: \"'.concat(key, '\"'));\n }\n\n this.data.failureSummaries[key] = mergeFailureMessage(this.data.failureSummaries[key], messages[key]);\n }\n };\n\n Audit.prototype.applyLocale = function (locale) {\n this._setDefaultLocale();\n\n if (locale.checks) {\n this._applyCheckLocale(locale.checks);\n }\n\n if (locale.rules) {\n this._applyRuleLocale(locale.rules);\n }\n\n if (locale.failureSummaries) {\n this._applyFailureSummaries(locale.failureSummaries, 'failureSummaries');\n }\n\n if (locale.incompleteFallbackMessage) {\n this.data.incompleteFallbackMessage = mergeFallbackMessage(this.data.incompleteFallbackMessage, locale.incompleteFallbackMessage);\n }\n\n if (locale.lang) {\n this.lang = locale.lang;\n }\n };\n\n Audit.prototype._init = function () {\n var audit = getDefaultConfiguration(this.defaultConfig);\n axe.commons = commons = audit.commons;\n this.lang = audit.lang || 'en';\n this.reporter = audit.reporter;\n this.commands = {};\n this.rules = [];\n this.checks = {};\n unpackToObject(audit.rules, this, 'addRule');\n unpackToObject(audit.checks, this, 'addCheck');\n this.data = {};\n this.data.checks = audit.data && audit.data.checks || {};\n this.data.rules = audit.data && audit.data.rules || {};\n this.data.failureSummaries = audit.data && audit.data.failureSummaries || {};\n this.data.incompleteFallbackMessage = audit.data && audit.data.incompleteFallbackMessage || '';\n\n this._constructHelpUrls();\n };\n\n Audit.prototype.registerCommand = function (command) {\n 'use strict';\n\n this.commands[command.id] = command.callback;\n };\n\n Audit.prototype.addRule = function (spec) {\n 'use strict';\n\n if (spec.metadata) {\n this.data.rules[spec.id] = spec.metadata;\n }\n\n var rule = this.getRule(spec.id);\n\n if (rule) {\n rule.configure(spec);\n } else {\n this.rules.push(new Rule(spec, this));\n }\n };\n\n Audit.prototype.addCheck = function (spec) {\n 'use strict';\n\n var metadata = spec.metadata;\n\n if (_typeof(metadata) === 'object') {\n this.data.checks[spec.id] = metadata;\n\n if (_typeof(metadata.messages) === 'object') {\n Object.keys(metadata.messages).filter(function (prop) {\n return metadata.messages.hasOwnProperty(prop) && typeof metadata.messages[prop] === 'string';\n }).forEach(function (prop) {\n if (metadata.messages[prop].indexOf('function') === 0) {\n metadata.messages[prop] = new Function('return ' + metadata.messages[prop] + ';')();\n }\n });\n }\n }\n\n if (this.checks[spec.id]) {\n this.checks[spec.id].configure(spec);\n } else {\n this.checks[spec.id] = new Check(spec);\n }\n };\n\n function getRulesToRun(rules, context, options) {\n var base = {\n now: [],\n later: []\n };\n var splitRules = rules.reduce(function (out, rule) {\n if (!axe.utils.ruleShouldRun(rule, context, options)) {\n return out;\n }\n\n if (rule.preload) {\n out.later.push(rule);\n return out;\n }\n\n out.now.push(rule);\n return out;\n }, base);\n return splitRules;\n }\n\n function getDefferedRule(rule, context, options) {\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark('mark_rule_start_' + rule.id);\n }\n\n return function (resolve, reject) {\n rule.run(context, options, function (ruleResult) {\n resolve(ruleResult);\n }, function (err) {\n if (!options.debug) {\n var errResult = Object.assign(new RuleResult(rule), {\n result: axe.constants.CANTTELL,\n description: 'An error occured while running this rule',\n message: err.message,\n stack: err.stack,\n error: err,\n errorNode: err.errorNode\n });\n resolve(errResult);\n } else {\n reject(err);\n }\n });\n };\n }\n\n Audit.prototype.run = function (context, options, resolve, reject) {\n 'use strict';\n\n this.normalizeOptions(options);\n axe._selectCache = [];\n var allRulesToRun = getRulesToRun(this.rules, context, options);\n var runNowRules = allRulesToRun.now;\n var runLaterRules = allRulesToRun.later;\n var nowRulesQueue = axe.utils.queue();\n runNowRules.forEach(function (rule) {\n nowRulesQueue.defer(getDefferedRule(rule, context, options));\n });\n var preloaderQueue = axe.utils.queue();\n\n if (runLaterRules.length) {\n preloaderQueue.defer(function (resolve) {\n axe.utils.preload(options).then(function (assets) {\n return resolve(assets);\n })['catch'](function (err) {\n console.warn('Couldn\\'t load preload assets: ', err);\n resolve(undefined);\n });\n });\n }\n\n var queueForNowRulesAndPreloader = axe.utils.queue();\n queueForNowRulesAndPreloader.defer(nowRulesQueue);\n queueForNowRulesAndPreloader.defer(preloaderQueue);\n queueForNowRulesAndPreloader.then(function (nowRulesAndPreloaderResults) {\n var assetsFromQueue = nowRulesAndPreloaderResults.pop();\n\n if (assetsFromQueue && assetsFromQueue.length) {\n var assets = assetsFromQueue[0];\n\n if (assets) {\n context = _extends({}, context, {}, assets);\n }\n }\n\n var nowRulesResults = nowRulesAndPreloaderResults[0];\n\n if (!runLaterRules.length) {\n axe._selectCache = undefined;\n resolve(nowRulesResults.filter(function (result) {\n return !!result;\n }));\n return;\n }\n\n var laterRulesQueue = axe.utils.queue();\n runLaterRules.forEach(function (rule) {\n var deferredRule = getDefferedRule(rule, context, options);\n laterRulesQueue.defer(deferredRule);\n });\n laterRulesQueue.then(function (laterRuleResults) {\n axe._selectCache = undefined;\n resolve(nowRulesResults.concat(laterRuleResults).filter(function (result) {\n return !!result;\n }));\n })['catch'](reject);\n })['catch'](reject);\n };\n\n Audit.prototype.after = function (results, options) {\n 'use strict';\n\n var rules = this.rules;\n return results.map(function (ruleResult) {\n var rule = axe.utils.findBy(rules, 'id', ruleResult.id);\n\n if (!rule) {\n throw new Error('Result for unknown rule. You may be running mismatch axe-core versions');\n }\n\n return rule.after(ruleResult, options);\n });\n };\n\n Audit.prototype.getRule = function (ruleId) {\n return this.rules.find(function (rule) {\n return rule.id === ruleId;\n });\n };\n\n Audit.prototype.normalizeOptions = function (options) {\n 'use strict';\n\n var audit = this;\n var tags = [];\n var ruleIds = [];\n audit.rules.forEach(function (rule) {\n ruleIds.push(rule.id);\n rule.tags.forEach(function (tag) {\n if (!tags.includes(tag)) {\n tags.push(tag);\n }\n });\n });\n\n if (_typeof(options.runOnly) === 'object') {\n if (Array.isArray(options.runOnly)) {\n var hasTag = options.runOnly.find(function (value) {\n return tags.includes(value);\n });\n var hasRule = options.runOnly.find(function (value) {\n return ruleIds.includes(value);\n });\n\n if (hasTag && hasRule) {\n throw new Error('runOnly cannot be both rules and tags');\n }\n\n if (hasRule) {\n options.runOnly = {\n type: 'rule',\n values: options.runOnly\n };\n } else {\n options.runOnly = {\n type: 'tag',\n values: options.runOnly\n };\n }\n }\n\n var only = options.runOnly;\n\n if (only.value && !only.values) {\n only.values = only.value;\n delete only.value;\n }\n\n if (!Array.isArray(only.values) || only.values.length === 0) {\n throw new Error('runOnly.values must be a non-empty array');\n }\n\n if (['rule', 'rules'].includes(only.type)) {\n only.type = 'rule';\n only.values.forEach(function (ruleId) {\n if (!ruleIds.includes(ruleId)) {\n throw new Error('unknown rule `' + ruleId + '` in options.runOnly');\n }\n });\n } else if (['tag', 'tags', undefined].includes(only.type)) {\n only.type = 'tag';\n var unmatchedTags = only.values.filter(function (tag) {\n return !tags.includes(tag);\n });\n\n if (unmatchedTags.length !== 0) {\n axe.log('Could not find tags `' + unmatchedTags.join('`, `') + '`');\n }\n } else {\n throw new Error('Unknown runOnly type \\''.concat(only.type, '\\''));\n }\n }\n\n if (_typeof(options.rules) === 'object') {\n Object.keys(options.rules).forEach(function (ruleId) {\n if (!ruleIds.includes(ruleId)) {\n throw new Error('unknown rule `' + ruleId + '` in options.rules');\n }\n });\n }\n\n return options;\n };\n\n Audit.prototype.setBranding = function (branding) {\n 'use strict';\n\n var previous = {\n brand: this.brand,\n application: this.application\n };\n\n if (branding && branding.hasOwnProperty('brand') && branding.brand && typeof branding.brand === 'string') {\n this.brand = branding.brand;\n }\n\n if (branding && branding.hasOwnProperty('application') && branding.application && typeof branding.application === 'string') {\n this.application = branding.application;\n }\n\n this._constructHelpUrls(previous);\n };\n\n function getHelpUrl(_ref, ruleId, version) {\n var brand = _ref.brand,\n application = _ref.application,\n lang = _ref.lang;\n return axe.constants.helpUrlBase + brand + '/' + (version || axe.version.substring(0, axe.version.lastIndexOf('.'))) + '/' + ruleId + '?application=' + encodeURIComponent(application) + (lang && lang !== 'en' ? '&lang=' + encodeURIComponent(lang) : '');\n }\n\n Audit.prototype._constructHelpUrls = function () {\n var _this = this;\n\n var previous = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var version = (axe.version.match(/^[1-9][0-9]*\\.[0-9]+/) || ['x.y'])[0];\n this.rules.forEach(function (rule) {\n if (!_this.data.rules[rule.id]) {\n _this.data.rules[rule.id] = {};\n }\n\n var metaData = _this.data.rules[rule.id];\n\n if (typeof metaData.helpUrl !== 'string' || previous && metaData.helpUrl === getHelpUrl(previous, rule.id, version)) {\n metaData.helpUrl = getHelpUrl(_this, rule.id, version);\n }\n });\n };\n\n Audit.prototype.resetRulesAndChecks = function () {\n 'use strict';\n\n this._init();\n\n this._resetLocale();\n };\n\n 'use strict';\n\n (function () {\n 'use strict';\n\n var _cache = {};\n var cache = {\n set: function set(key, value) {\n _cache[key] = value;\n },\n get: function get(key) {\n return _cache[key];\n },\n clear: function clear() {\n _cache = {};\n }\n };\n axe._cache = cache;\n })();\n\n 'use strict';\n\n function CheckResult(check) {\n 'use strict';\n\n this.id = check.id;\n this.data = null;\n this.relatedNodes = [];\n this.result = null;\n }\n\n 'use strict';\n\n function createExecutionContext(spec) {\n 'use strict';\n\n if (typeof spec === 'string') {\n return new Function('return ' + spec + ';')();\n }\n\n return spec;\n }\n\n function Check(spec) {\n if (spec) {\n this.id = spec.id;\n this.configure(spec);\n }\n }\n\n Check.prototype.enabled = true;\n\n Check.prototype.run = function (node, options, context, resolve, reject) {\n 'use strict';\n\n options = options || {};\n var enabled = options.hasOwnProperty('enabled') ? options.enabled : this.enabled,\n checkOptions = options.options || this.options;\n\n if (enabled) {\n var checkResult = new CheckResult(this);\n var checkHelper = axe.utils.checkHelper(checkResult, options, resolve, reject);\n var result;\n\n try {\n result = this.evaluate.call(checkHelper, node.actualNode, checkOptions, node, context);\n } catch (e) {\n if (node && node.actualNode) {\n e.errorNode = new DqElement(node.actualNode).toJSON();\n }\n\n reject(e);\n return;\n }\n\n if (!checkHelper.isAsync) {\n checkResult.result = result;\n resolve(checkResult);\n }\n } else {\n resolve(null);\n }\n };\n\n Check.prototype.runSync = function (node, options, context) {\n options = options || {};\n var _options = options,\n _options$enabled = _options.enabled,\n enabled = _options$enabled === void 0 ? this.enabled : _options$enabled;\n\n if (!enabled) {\n return null;\n }\n\n var checkOptions = options.options || this.options;\n var checkResult = new CheckResult(this);\n var checkHelper = axe.utils.checkHelper(checkResult, options);\n\n checkHelper.async = function () {\n throw new Error('Cannot run async check while in a synchronous run');\n };\n\n var result;\n\n try {\n result = this.evaluate.call(checkHelper, node.actualNode, checkOptions, node, context);\n } catch (e) {\n if (node && node.actualNode) {\n e.errorNode = new DqElement(node.actualNode).toJSON();\n }\n\n throw e;\n }\n\n checkResult.result = result;\n return checkResult;\n };\n\n Check.prototype.configure = function (spec) {\n var _this = this;\n\n ['options', 'enabled'].filter(function (prop) {\n return spec.hasOwnProperty(prop);\n }).forEach(function (prop) {\n return _this[prop] = spec[prop];\n });\n ['evaluate', 'after'].filter(function (prop) {\n return spec.hasOwnProperty(prop);\n }).forEach(function (prop) {\n return _this[prop] = createExecutionContext(spec[prop]);\n });\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function pushUniqueFrame(collection, frame) {\n 'use strict';\n\n if (axe.utils.isHidden(frame)) {\n return;\n }\n\n var fr = axe.utils.findBy(collection, 'node', frame);\n\n if (!fr) {\n collection.push({\n node: frame,\n include: [],\n exclude: []\n });\n }\n }\n\n function pushUniqueFrameSelector(context, type, selectorArray) {\n 'use strict';\n\n context.frames = context.frames || [];\n var result, frame;\n var frames = document.querySelectorAll(selectorArray.shift());\n\n frameloop: for (var i = 0, l = frames.length; i < l; i++) {\n frame = frames[i];\n\n for (var j = 0, l2 = context.frames.length; j < l2; j++) {\n if (context.frames[j].node === frame) {\n context.frames[j][type].push(selectorArray);\n break frameloop;\n }\n }\n\n result = {\n node: frame,\n include: [],\n exclude: []\n };\n\n if (selectorArray) {\n result[type].push(selectorArray);\n }\n\n context.frames.push(result);\n }\n }\n\n function normalizeContext(context) {\n 'use strict';\n\n if (context && _typeof(context) === 'object' || context instanceof NodeList) {\n if (context instanceof Node) {\n return {\n include: [context],\n exclude: []\n };\n }\n\n if (context.hasOwnProperty('include') || context.hasOwnProperty('exclude')) {\n return {\n include: context.include && +context.include.length ? context.include : [document],\n exclude: context.exclude || []\n };\n }\n\n if (context.length === +context.length) {\n return {\n include: context,\n exclude: []\n };\n }\n }\n\n if (typeof context === 'string') {\n return {\n include: [context],\n exclude: []\n };\n }\n\n return {\n include: [document],\n exclude: []\n };\n }\n\n function parseSelectorArray(context, type) {\n 'use strict';\n\n var item,\n result = [],\n nodeList;\n\n for (var i = 0, l = context[type].length; i < l; i++) {\n item = context[type][i];\n\n if (typeof item === 'string') {\n nodeList = Array.from(document.querySelectorAll(item));\n result = result.concat(nodeList.map(function (node) {\n return axe.utils.getNodeFromTree(node);\n }));\n break;\n } else if (item && item.length && !(item instanceof Node)) {\n if (item.length > 1) {\n pushUniqueFrameSelector(context, type, item);\n } else {\n nodeList = Array.from(document.querySelectorAll(item[0]));\n result = result.concat(nodeList.map(function (node) {\n return axe.utils.getNodeFromTree(node);\n }));\n }\n } else if (item instanceof Node) {\n if (item.documentElement instanceof Node) {\n result.push(context.flatTree[0]);\n } else {\n result.push(axe.utils.getNodeFromTree(item));\n }\n }\n }\n\n return result.filter(function (r) {\n return r;\n });\n }\n\n function validateContext(context) {\n 'use strict';\n\n if (context.include.length === 0) {\n if (context.frames.length === 0) {\n var env = axe.utils.respondable.isInFrame() ? 'frame' : 'page';\n return new Error('No elements found for include in ' + env + ' Context');\n }\n\n context.frames.forEach(function (frame, i) {\n if (frame.include.length === 0) {\n return new Error('No elements found for include in Context of frame ' + i);\n }\n });\n }\n }\n\n function getRootNode(_ref) {\n var include = _ref.include,\n exclude = _ref.exclude;\n var selectors = Array.from(include).concat(Array.from(exclude));\n\n for (var i = 0; i < selectors.length; ++i) {\n var item = selectors[i];\n\n if (item instanceof Element) {\n return item.ownerDocument.documentElement;\n }\n\n if (item instanceof Document) {\n return item.documentElement;\n }\n }\n\n return document.documentElement;\n }\n\n function Context(spec) {\n 'use strict';\n\n var _this = this;\n\n this.frames = [];\n this.initiator = spec && typeof spec.initiator === 'boolean' ? spec.initiator : true;\n this.page = false;\n spec = normalizeContext(spec);\n this.flatTree = axe.utils.getFlattenedTree(getRootNode(spec));\n this.exclude = spec.exclude;\n this.include = spec.include;\n this.include = parseSelectorArray(this, 'include');\n this.exclude = parseSelectorArray(this, 'exclude');\n axe.utils.select('frame, iframe', this).forEach(function (frame) {\n if (isNodeInContext(frame, _this)) {\n pushUniqueFrame(_this.frames, frame.actualNode);\n }\n });\n\n if (this.include.length === 1 && this.include[0].actualNode === document.documentElement) {\n this.page = true;\n }\n\n var err = validateContext(this);\n\n if (err instanceof Error) {\n throw err;\n }\n\n if (!Array.isArray(this.include)) {\n this.include = Array.from(this.include);\n }\n\n this.include.sort(axe.utils.nodeSorter);\n }\n\n 'use strict';\n\n function RuleResult(rule) {\n 'use strict';\n\n this.id = rule.id;\n this.result = axe.constants.NA;\n this.pageLevel = rule.pageLevel;\n this.impact = null;\n this.nodes = [];\n }\n\n 'use strict';\n\n function Rule(spec, parentAudit) {\n 'use strict';\n\n this._audit = parentAudit;\n this.id = spec.id;\n this.selector = spec.selector || '*';\n this.excludeHidden = typeof spec.excludeHidden === 'boolean' ? spec.excludeHidden : true;\n this.enabled = typeof spec.enabled === 'boolean' ? spec.enabled : true;\n this.pageLevel = typeof spec.pageLevel === 'boolean' ? spec.pageLevel : false;\n this.any = spec.any || [];\n this.all = spec.all || [];\n this.none = spec.none || [];\n this.tags = spec.tags || [];\n this.preload = spec.preload ? true : false;\n\n if (spec.matches) {\n this.matches = createExecutionContext(spec.matches);\n }\n }\n\n Rule.prototype.matches = function () {\n 'use strict';\n\n return true;\n };\n\n Rule.prototype.gather = function (context) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var markStart = 'mark_gather_start_' + this.id;\n var markEnd = 'mark_gather_end_' + this.id;\n var markHiddenStart = 'mark_isHidden_start_' + this.id;\n var markHiddenEnd = 'mark_isHidden_end_' + this.id;\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markStart);\n }\n\n var elements = axe.utils.select(this.selector, context);\n\n if (this.excludeHidden) {\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markHiddenStart);\n }\n\n elements = elements.filter(function (element) {\n return !axe.utils.isHidden(element.actualNode);\n });\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markHiddenEnd);\n axe.utils.performanceTimer.measure('rule_' + this.id + '#gather_axe.utils.isHidden', markHiddenStart, markHiddenEnd);\n }\n }\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markEnd);\n axe.utils.performanceTimer.measure('rule_' + this.id + '#gather', markStart, markEnd);\n }\n\n return elements;\n };\n\n Rule.prototype.runChecks = function (type, node, options, context, resolve, reject) {\n 'use strict';\n\n var self = this;\n var checkQueue = axe.utils.queue();\n this[type].forEach(function (c) {\n var check = self._audit.checks[c.id || c];\n var option = axe.utils.getCheckOption(check, self.id, options);\n checkQueue.defer(function (res, rej) {\n check.run(node, option, context, res, rej);\n });\n });\n checkQueue.then(function (results) {\n results = results.filter(function (check) {\n return check;\n });\n resolve({\n type: type,\n results: results\n });\n })['catch'](reject);\n };\n\n Rule.prototype.runChecksSync = function (type, node, options, context) {\n 'use strict';\n\n var self = this;\n var results = [];\n this[type].forEach(function (c) {\n var check = self._audit.checks[c.id || c];\n var option = axe.utils.getCheckOption(check, self.id, options);\n results.push(check.runSync(node, option, context));\n });\n results = results.filter(function (check) {\n return check;\n });\n return {\n type: type,\n results: results\n };\n };\n\n Rule.prototype.run = function (context) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var resolve = arguments.length > 2 ? arguments[2] : undefined;\n var reject = arguments.length > 3 ? arguments[3] : undefined;\n\n if (options.performanceTimer) {\n this._trackPerformance();\n }\n\n var q = axe.utils.queue();\n var ruleResult = new RuleResult(this);\n var nodes;\n\n try {\n nodes = this.gatherAndMatchNodes(context, options);\n } catch (error) {\n reject(new SupportError({\n cause: error,\n ruleId: this.id\n }));\n return;\n }\n\n if (options.performanceTimer) {\n this._logGatherPerformance(nodes);\n }\n\n nodes.forEach(function (node) {\n q.defer(function (resolveNode, rejectNode) {\n var checkQueue = axe.utils.queue();\n ['any', 'all', 'none'].forEach(function (type) {\n checkQueue.defer(function (res, rej) {\n _this.runChecks(type, node, options, context, res, rej);\n });\n });\n checkQueue.then(function (results) {\n var result = getResult(results);\n\n if (result) {\n result.node = new axe.utils.DqElement(node.actualNode, options);\n ruleResult.nodes.push(result);\n }\n\n resolveNode();\n })['catch'](function (err) {\n return rejectNode(err);\n });\n });\n });\n q.defer(function (resolve) {\n return setTimeout(resolve, 0);\n });\n\n if (options.performanceTimer) {\n this._logRulePerformance();\n }\n\n q.then(function () {\n return resolve(ruleResult);\n })['catch'](function (error) {\n return reject(error);\n });\n };\n\n Rule.prototype.runSync = function (context) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (options.performanceTimer) {\n this._trackPerformance();\n }\n\n var ruleResult = new RuleResult(this);\n var nodes;\n\n try {\n nodes = this.gatherAndMatchNodes(context, options);\n } catch (error) {\n throw new SupportError({\n cause: error,\n ruleId: this.id\n });\n }\n\n if (options.performanceTimer) {\n this._logGatherPerformance(nodes);\n }\n\n nodes.forEach(function (node) {\n var results = [];\n ['any', 'all', 'none'].forEach(function (type) {\n results.push(_this2.runChecksSync(type, node, options, context));\n });\n var result = getResult(results);\n\n if (result) {\n result.node = node.actualNode ? new axe.utils.DqElement(node.actualNode, options) : null;\n ruleResult.nodes.push(result);\n }\n });\n\n if (options.performanceTimer) {\n this._logRulePerformance();\n }\n\n return ruleResult;\n };\n\n Rule.prototype._trackPerformance = function () {\n this._markStart = 'mark_rule_start_' + this.id;\n this._markEnd = 'mark_rule_end_' + this.id;\n this._markChecksStart = 'mark_runchecks_start_' + this.id;\n this._markChecksEnd = 'mark_runchecks_end_' + this.id;\n };\n\n Rule.prototype._logGatherPerformance = function (nodes) {\n axe.log('gather (', nodes.length, '):', axe.utils.performanceTimer.timeElapsed() + 'ms');\n axe.utils.performanceTimer.mark(this._markChecksStart);\n };\n\n Rule.prototype._logRulePerformance = function () {\n axe.utils.performanceTimer.mark(this._markChecksEnd);\n axe.utils.performanceTimer.mark(this._markEnd);\n axe.utils.performanceTimer.measure('runchecks_' + this.id, this._markChecksStart, this._markChecksEnd);\n axe.utils.performanceTimer.measure('rule_' + this.id, this._markStart, this._markEnd);\n };\n\n function getResult(results) {\n if (results.length) {\n var hasResults = false,\n result = {};\n results.forEach(function (r) {\n var res = r.results.filter(function (result) {\n return result;\n });\n result[r.type] = res;\n\n if (res.length) {\n hasResults = true;\n }\n });\n\n if (hasResults) {\n return result;\n }\n\n return null;\n }\n }\n\n Rule.prototype.gatherAndMatchNodes = function (context, options) {\n var _this3 = this;\n\n var markMatchesStart = 'mark_matches_start_' + this.id;\n var markMatchesEnd = 'mark_matches_end_' + this.id;\n var nodes = this.gather(context, options);\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markMatchesStart);\n }\n\n nodes = nodes.filter(function (node) {\n return _this3.matches(node.actualNode, node, context);\n });\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.mark(markMatchesEnd);\n axe.utils.performanceTimer.measure('rule_' + this.id + '#matches', markMatchesStart, markMatchesEnd);\n }\n\n return nodes;\n };\n\n function findAfterChecks(rule) {\n 'use strict';\n\n return axe.utils.getAllChecks(rule).map(function (c) {\n var check = rule._audit.checks[c.id || c];\n return check && typeof check.after === 'function' ? check : null;\n }).filter(Boolean);\n }\n\n function findCheckResults(nodes, checkID) {\n 'use strict';\n\n var checkResults = [];\n nodes.forEach(function (nodeResult) {\n var checks = axe.utils.getAllChecks(nodeResult);\n checks.forEach(function (checkResult) {\n if (checkResult.id === checkID) {\n checkResults.push(checkResult);\n }\n });\n });\n return checkResults;\n }\n\n function filterChecks(checks) {\n 'use strict';\n\n return checks.filter(function (check) {\n return check.filtered !== true;\n });\n }\n\n function sanitizeNodes(result) {\n 'use strict';\n\n var checkTypes = ['any', 'all', 'none'];\n var nodes = result.nodes.filter(function (detail) {\n var length = 0;\n checkTypes.forEach(function (type) {\n detail[type] = filterChecks(detail[type]);\n length += detail[type].length;\n });\n return length > 0;\n });\n\n if (result.pageLevel && nodes.length) {\n nodes = [nodes.reduce(function (a, b) {\n if (a) {\n checkTypes.forEach(function (type) {\n a[type].push.apply(a[type], b[type]);\n });\n return a;\n }\n })];\n }\n\n return nodes;\n }\n\n Rule.prototype.after = function (result, options) {\n 'use strict';\n\n var afterChecks = findAfterChecks(this);\n var ruleID = this.id;\n afterChecks.forEach(function (check) {\n var beforeResults = findCheckResults(result.nodes, check.id);\n var option = axe.utils.getCheckOption(check, ruleID, options);\n var afterResults = check.after(beforeResults, option);\n beforeResults.forEach(function (item) {\n if (afterResults.indexOf(item) === -1) {\n item.filtered = true;\n }\n });\n });\n result.nodes = sanitizeNodes(result);\n return result;\n };\n\n Rule.prototype.configure = function (spec) {\n 'use strict';\n\n if (spec.hasOwnProperty('selector')) {\n this.selector = spec.selector;\n }\n\n if (spec.hasOwnProperty('excludeHidden')) {\n this.excludeHidden = typeof spec.excludeHidden === 'boolean' ? spec.excludeHidden : true;\n }\n\n if (spec.hasOwnProperty('enabled')) {\n this.enabled = typeof spec.enabled === 'boolean' ? spec.enabled : true;\n }\n\n if (spec.hasOwnProperty('pageLevel')) {\n this.pageLevel = typeof spec.pageLevel === 'boolean' ? spec.pageLevel : false;\n }\n\n if (spec.hasOwnProperty('any')) {\n this.any = spec.any;\n }\n\n if (spec.hasOwnProperty('all')) {\n this.all = spec.all;\n }\n\n if (spec.hasOwnProperty('none')) {\n this.none = spec.none;\n }\n\n if (spec.hasOwnProperty('tags')) {\n this.tags = spec.tags;\n }\n\n if (spec.hasOwnProperty('matches')) {\n if (typeof spec.matches === 'string') {\n this.matches = new Function('return ' + spec.matches + ';')();\n } else {\n this.matches = spec.matches;\n }\n }\n };\n\n 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if ('value' in descriptor) {\n descriptor.writable = true;\n }\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) {\n _defineProperties(Constructor.prototype, protoProps);\n }\n\n if (staticProps) {\n _defineProperties(Constructor, staticProps);\n }\n\n return Constructor;\n }\n\n var whitespaceRegex = /[\\t\\r\\n\\f]/g;\n\n var AbstractVirtualNode = function () {\n function AbstractVirtualNode() {\n _classCallCheck(this, AbstractVirtualNode);\n\n this.children = [];\n this.parent = null;\n }\n\n _createClass(AbstractVirtualNode, [{\n key: 'attr',\n value: function attr() {\n throw new Error('VirtualNode class must have a \"attr\" function');\n }\n }, {\n key: 'hasAttr',\n value: function hasAttr() {\n throw new Error('VirtualNode class must have a \"hasAttr\" function');\n }\n }, {\n key: 'hasClass',\n value: function hasClass(className) {\n var classAttr = this.attr('class');\n\n if (!classAttr) {\n return false;\n }\n\n var selector = ' ' + className + ' ';\n return (' ' + classAttr + ' ').replace(whitespaceRegex, ' ').indexOf(selector) >= 0;\n }\n }, {\n key: 'props',\n get: function get() {\n throw new Error('VirtualNode class must have a \"props\" object consisting ' + 'of \"nodeType\" and \"nodeName\" properties');\n }\n }]);\n\n return AbstractVirtualNode;\n }();\n\n axe.AbstractVirtualNode = AbstractVirtualNode;\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if ('value' in descriptor) {\n descriptor.writable = true;\n }\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) {\n _defineProperties(Constructor.prototype, protoProps);\n }\n\n if (staticProps) {\n _defineProperties(Constructor, staticProps);\n }\n\n return Constructor;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === 'object' || typeof call === 'function')) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\n }\n\n return self;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n _setPrototypeOf(subClass, superClass);\n }\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n var SerialVirtualNode = function (_axe$AbstractVirtualN) {\n _inherits(SerialVirtualNode, _axe$AbstractVirtualN);\n\n function SerialVirtualNode(serialNode) {\n var _this;\n\n _classCallCheck(this, SerialVirtualNode);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SerialVirtualNode).call(this));\n _this._props = normaliseProps(serialNode);\n _this._attrs = normaliseAttrs(serialNode);\n return _this;\n }\n\n _createClass(SerialVirtualNode, [{\n key: 'attr',\n value: function attr(attrName) {\n return this._attrs[attrName] || null;\n }\n }, {\n key: 'hasAttr',\n value: function hasAttr(attrName) {\n return this._attrs[attrName] !== undefined;\n }\n }, {\n key: 'props',\n get: function get() {\n return this._props;\n }\n }]);\n\n return SerialVirtualNode;\n }(axe.AbstractVirtualNode);\n\n function normaliseProps(serialNode) {\n var nodeName = serialNode.nodeName,\n _serialNode$nodeType = serialNode.nodeType,\n nodeType = _serialNode$nodeType === void 0 ? 1 : _serialNode$nodeType;\n axe.utils.assert(nodeType === 1, 'nodeType has to be undefined or 1, got \\''.concat(nodeType, '\\''));\n axe.utils.assert(typeof nodeName === 'string', 'nodeName has to be a string, got \\''.concat(nodeName, '\\''));\n\n var props = _extends({}, serialNode, {\n nodeType: nodeType,\n nodeName: nodeName.toLowerCase()\n });\n\n delete props.attributes;\n return Object.freeze(props);\n }\n\n function normaliseAttrs(_ref) {\n var _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes;\n var attrMap = {\n htmlFor: 'for',\n className: 'class'\n };\n return Object.keys(attributes).reduce(function (attrs, attrName) {\n var value = attributes[attrName];\n axe.utils.assert(_typeof(value) !== 'object' || value === null, 'expects attributes not to be an object, \\''.concat(attrName, '\\' was'));\n\n if (value !== undefined) {\n var mappedName = attrMap[attrName] || attrName;\n attrs[mappedName] = value !== null ? String(value) : null;\n }\n\n return attrs;\n }, {});\n }\n\n axe.SerialVirtualNode = SerialVirtualNode;\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if ('value' in descriptor) {\n descriptor.writable = true;\n }\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) {\n _defineProperties(Constructor.prototype, protoProps);\n }\n\n if (staticProps) {\n _defineProperties(Constructor, staticProps);\n }\n\n return Constructor;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === 'object' || typeof call === 'function')) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\n }\n\n return self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n _setPrototypeOf(subClass, superClass);\n }\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n var isXHTMLGlobal;\n\n var VirtualNode = function (_axe$AbstractVirtualN) {\n _inherits(VirtualNode, _axe$AbstractVirtualN);\n\n function VirtualNode(node, parent, shadowId) {\n var _this;\n\n _classCallCheck(this, VirtualNode);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(VirtualNode).call(this));\n _this.shadowId = shadowId;\n _this.children = [];\n _this.actualNode = node;\n _this.parent = parent;\n _this._isHidden = null;\n _this._cache = {};\n\n if (typeof isXHTMLGlobal === 'undefined') {\n isXHTMLGlobal = axe.utils.isXHTML(node.ownerDocument);\n }\n\n _this._isXHTML = isXHTMLGlobal;\n\n if (axe._cache.get('nodeMap')) {\n axe._cache.get('nodeMap').set(node, _assertThisInitialized(_this));\n }\n\n return _this;\n }\n\n _createClass(VirtualNode, [{\n key: 'attr',\n value: function attr(attrName) {\n if (typeof this.actualNode.getAttribute !== 'function') {\n return null;\n }\n\n return this.actualNode.getAttribute(attrName);\n }\n }, {\n key: 'hasAttr',\n value: function hasAttr(attrName) {\n if (typeof this.actualNode.hasAttribute !== 'function') {\n return false;\n }\n\n return this.actualNode.hasAttribute(attrName);\n }\n }, {\n key: 'getComputedStylePropertyValue',\n value: function getComputedStylePropertyValue(property) {\n var key = 'computedStyle_' + property;\n\n if (!this._cache.hasOwnProperty(key)) {\n if (!this._cache.hasOwnProperty('computedStyle')) {\n this._cache.computedStyle = window.getComputedStyle(this.actualNode);\n }\n\n this._cache[key] = this._cache.computedStyle.getPropertyValue(property);\n }\n\n return this._cache[key];\n }\n }, {\n key: 'props',\n get: function get() {\n var _this$actualNode = this.actualNode,\n nodeType = _this$actualNode.nodeType,\n nodeName = _this$actualNode.nodeName,\n id = _this$actualNode.id,\n type = _this$actualNode.type,\n multiple = _this$actualNode.multiple;\n return {\n nodeType: nodeType,\n nodeName: this._isXHTML ? nodeName : nodeName.toLowerCase(),\n id: id,\n type: type,\n multiple: multiple\n };\n }\n }, {\n key: 'isFocusable',\n get: function get() {\n if (!this._cache.hasOwnProperty('isFocusable')) {\n this._cache.isFocusable = axe.commons.dom.isFocusable(this.actualNode);\n }\n\n return this._cache.isFocusable;\n }\n }, {\n key: 'tabbableElements',\n get: function get() {\n if (!this._cache.hasOwnProperty('tabbableElements')) {\n this._cache.tabbableElements = axe.commons.dom.getTabbableElements(this);\n }\n\n return this._cache.tabbableElements;\n }\n }, {\n key: 'clientRects',\n get: function get() {\n if (!this._cache.hasOwnProperty('clientRects')) {\n this._cache.clientRects = Array.from(this.actualNode.getClientRects()).filter(function (rect) {\n return rect.width > 0;\n });\n }\n\n return this._cache.clientRects;\n }\n }, {\n key: 'boundingClientRect',\n get: function get() {\n if (!this._cache.hasOwnProperty('boundingClientRect')) {\n this._cache.boundingClientRect = this.actualNode.getBoundingClientRect();\n }\n\n return this._cache.boundingClientRect;\n }\n }]);\n\n return VirtualNode;\n }(axe.AbstractVirtualNode);\n\n axe.VirtualNode = VirtualNode;\n 'use strict';\n\n (function (axe) {\n var definitions = [{\n name: 'NA',\n value: 'inapplicable',\n priority: 0,\n group: 'inapplicable'\n }, {\n name: 'PASS',\n value: 'passed',\n priority: 1,\n group: 'passes'\n }, {\n name: 'CANTTELL',\n value: 'cantTell',\n priority: 2,\n group: 'incomplete'\n }, {\n name: 'FAIL',\n value: 'failed',\n priority: 3,\n group: 'violations'\n }];\n var constants = {\n helpUrlBase: 'https://dequeuniversity.com/rules/',\n results: [],\n resultGroups: [],\n resultGroupMap: {},\n impact: Object.freeze(['minor', 'moderate', 'serious', 'critical']),\n preload: Object.freeze({\n assets: ['cssom', 'media'],\n timeout: 1e4\n })\n };\n definitions.forEach(function (definition) {\n var name = definition.name;\n var value = definition.value;\n var priority = definition.priority;\n var group = definition.group;\n constants[name] = value;\n constants[name + '_PRIO'] = priority;\n constants[name + '_GROUP'] = group;\n constants.results[priority] = value;\n constants.resultGroups[priority] = group;\n constants.resultGroupMap[value] = group;\n });\n Object.freeze(constants.results);\n Object.freeze(constants.resultGroups);\n Object.freeze(constants.resultGroupMap);\n Object.freeze(constants);\n Object.defineProperty(axe, 'constants', {\n value: constants,\n enumerable: true,\n configurable: false,\n writable: false\n });\n })(axe);\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n axe.log = function () {\n 'use strict';\n\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === 'object' && console.log) {\n Function.prototype.apply.call(console.log, console, arguments);\n }\n };\n\n 'use strict';\n\n function cleanupPlugins(resolve, reject) {\n 'use strict';\n\n resolve = resolve || function () {};\n\n reject = reject || axe.log;\n\n if (!axe._audit) {\n throw new Error('No audit configured');\n }\n\n var q = axe.utils.queue();\n var cleanupErrors = [];\n Object.keys(axe.plugins).forEach(function (key) {\n q.defer(function (res) {\n var rej = function rej(err) {\n cleanupErrors.push(err);\n res();\n };\n\n try {\n axe.plugins[key].cleanup(res, rej);\n } catch (err) {\n rej(err);\n }\n });\n });\n var flattenedTree = axe.utils.getFlattenedTree(document.body);\n axe.utils.querySelectorAll(flattenedTree, 'iframe, frame').forEach(function (node) {\n q.defer(function (res, rej) {\n return axe.utils.sendCommandToFrame(node.actualNode, {\n command: 'cleanup-plugin'\n }, res, rej);\n });\n });\n q.then(function (results) {\n if (cleanupErrors.length === 0) {\n resolve(results);\n } else {\n reject(cleanupErrors);\n }\n })['catch'](reject);\n }\n\n axe.cleanup = cleanupPlugins;\n 'use strict';\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === '[object Arguments]')) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) {\n break;\n }\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) {\n _i['return']();\n }\n } finally {\n if (_d) {\n throw _e;\n }\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) {\n return arr;\n }\n }\n\n function configureChecksRulesAndBranding(spec) {\n 'use strict';\n\n var audit;\n audit = axe._audit;\n\n if (!audit) {\n throw new Error('No audit configured');\n }\n\n if (spec.axeVersion || spec.ver) {\n var specVersion = spec.axeVersion || spec.ver;\n\n if (!/^\\d+\\.\\d+\\.\\d+(-canary)?/.test(specVersion)) {\n throw new Error('Invalid configured version '.concat(specVersion));\n }\n\n var _specVersion$split = specVersion.split('-'),\n _specVersion$split2 = _slicedToArray(_specVersion$split, 2),\n version = _specVersion$split2[0],\n canary = _specVersion$split2[1];\n\n var _version$split$map = version.split('.').map(Number),\n _version$split$map2 = _slicedToArray(_version$split$map, 3),\n major = _version$split$map2[0],\n minor = _version$split$map2[1],\n patch = _version$split$map2[2];\n\n var _axe$version$split = axe.version.split('-'),\n _axe$version$split2 = _slicedToArray(_axe$version$split, 2),\n axeVersion = _axe$version$split2[0],\n axeCanary = _axe$version$split2[1];\n\n var _axeVersion$split$map = axeVersion.split('.').map(Number),\n _axeVersion$split$map2 = _slicedToArray(_axeVersion$split$map, 3),\n axeMajor = _axeVersion$split$map2[0],\n axeMinor = _axeVersion$split$map2[1],\n axePatch = _axeVersion$split$map2[2];\n\n if (major !== axeMajor || axeMinor < minor || axeMinor === minor && axePatch < patch || major === axeMajor && minor === axeMinor && patch === axePatch && canary && canary !== axeCanary) {\n throw new Error('Configured version '.concat(specVersion, ' is not compatible with current axe version ').concat(axe.version));\n }\n }\n\n if (spec.reporter && (typeof spec.reporter === 'function' || reporters[spec.reporter])) {\n audit.reporter = spec.reporter;\n }\n\n if (spec.checks) {\n if (!Array.isArray(spec.checks)) {\n throw new TypeError('Checks property must be an array');\n }\n\n spec.checks.forEach(function (check) {\n if (!check.id) {\n throw new TypeError('Configured check '.concat(JSON.stringify(check), ' is invalid. Checks must be an object with at least an id property'));\n }\n\n audit.addCheck(check);\n });\n }\n\n var modifiedRules = [];\n\n if (spec.rules) {\n if (!Array.isArray(spec.rules)) {\n throw new TypeError('Rules property must be an array');\n }\n\n spec.rules.forEach(function (rule) {\n if (!rule.id) {\n throw new TypeError('Configured rule '.concat(JSON.stringify(rule), ' is invalid. Rules must be an object with at least an id property'));\n }\n\n modifiedRules.push(rule.id);\n audit.addRule(rule);\n });\n }\n\n if (spec.disableOtherRules) {\n audit.rules.forEach(function (rule) {\n if (modifiedRules.includes(rule.id) === false) {\n rule.enabled = false;\n }\n });\n }\n\n if (typeof spec.branding !== 'undefined') {\n audit.setBranding(spec.branding);\n } else {\n audit._constructHelpUrls();\n }\n\n if (spec.tagExclude) {\n audit.tagExclude = spec.tagExclude;\n }\n\n if (spec.locale) {\n audit.applyLocale(spec.locale);\n }\n }\n\n axe.configure = configureChecksRulesAndBranding;\n 'use strict';\n\n axe.getRules = function (tags) {\n 'use strict';\n\n tags = tags || [];\n var matchingRules = !tags.length ? axe._audit.rules : axe._audit.rules.filter(function (item) {\n return !!tags.filter(function (tag) {\n return item.tags.indexOf(tag) !== -1;\n }).length;\n });\n var ruleData = axe._audit.data.rules || {};\n return matchingRules.map(function (matchingRule) {\n var rd = ruleData[matchingRule.id] || {};\n return {\n ruleId: matchingRule.id,\n description: rd.description,\n help: rd.help,\n helpUrl: rd.helpUrl,\n tags: matchingRule.tags\n };\n });\n };\n\n 'use strict';\n\n function runCommand(data, keepalive, callback) {\n 'use strict';\n\n var resolve = callback;\n\n var reject = function reject(err) {\n if (err instanceof Error === false) {\n err = new Error(err);\n }\n\n callback(err);\n };\n\n var context = data && data.context || {};\n\n if (context.hasOwnProperty('include') && !context.include.length) {\n context.include = [document];\n }\n\n var options = data && data.options || {};\n\n switch (data.command) {\n case 'rules':\n return runRules(context, options, function (results, cleanup) {\n resolve(results);\n cleanup();\n }, reject);\n\n case 'cleanup-plugin':\n return cleanupPlugins(resolve, reject);\n\n default:\n if (axe._audit && axe._audit.commands && axe._audit.commands[data.command]) {\n return axe._audit.commands[data.command](data, callback);\n }\n\n }\n }\n\n axe._load = function (audit) {\n 'use strict';\n\n axe.utils.respondable.subscribe('axe.ping', function (data, keepalive, respond) {\n respond({\n axe: true\n });\n });\n axe.utils.respondable.subscribe('axe.start', runCommand);\n axe._audit = new Audit(audit);\n };\n\n 'use strict';\n\n var axe = axe || {};\n axe.plugins = {};\n\n function Plugin(spec) {\n 'use strict';\n\n this._run = spec.run;\n this._collect = spec.collect;\n this._registry = {};\n spec.commands.forEach(function (command) {\n axe._audit.registerCommand(command);\n });\n }\n\n Plugin.prototype.run = function () {\n 'use strict';\n\n return this._run.apply(this, arguments);\n };\n\n Plugin.prototype.collect = function () {\n 'use strict';\n\n return this._collect.apply(this, arguments);\n };\n\n Plugin.prototype.cleanup = function (done) {\n 'use strict';\n\n var q = axe.utils.queue();\n var that = this;\n Object.keys(this._registry).forEach(function (key) {\n q.defer(function (done) {\n that._registry[key].cleanup(done);\n });\n });\n q.then(function () {\n done();\n });\n };\n\n Plugin.prototype.add = function (impl) {\n 'use strict';\n\n this._registry[impl.id] = impl;\n };\n\n axe.registerPlugin = function (plugin) {\n 'use strict';\n\n axe.plugins[plugin.id] = new Plugin(plugin);\n };\n\n 'use strict';\n\n var reporters = {};\n var defaultReporter;\n\n axe.getReporter = function (reporter) {\n 'use strict';\n\n if (typeof reporter === 'string' && reporters[reporter]) {\n return reporters[reporter];\n }\n\n if (typeof reporter === 'function') {\n return reporter;\n }\n\n return defaultReporter;\n };\n\n axe.addReporter = function registerReporter(name, cb, isDefault) {\n 'use strict';\n\n reporters[name] = cb;\n\n if (isDefault) {\n defaultReporter = cb;\n }\n };\n\n 'use strict';\n\n function resetConfiguration() {\n 'use strict';\n\n var audit = axe._audit;\n\n if (!audit) {\n throw new Error('No audit configured');\n }\n\n audit.resetRulesAndChecks();\n }\n\n axe.reset = resetConfiguration;\n 'use strict';\n\n function cleanup() {\n axe._memoizedFns.forEach(function (fn) {\n return fn.clear();\n });\n\n axe._cache.clear();\n\n axe._tree = undefined;\n axe._selectorData = undefined;\n }\n\n function runRules(context, options, resolve, reject) {\n 'use strict';\n\n try {\n context = new Context(context);\n axe._tree = context.flatTree;\n axe._selectorData = axe.utils.getSelectorData(context.flatTree);\n } catch (e) {\n cleanup();\n return reject(e);\n }\n\n var q = axe.utils.queue();\n var audit = axe._audit;\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.auditStart();\n }\n\n if (context.frames.length && options.iframes !== false) {\n q.defer(function (res, rej) {\n axe.utils.collectResultsFromFrames(context, options, 'rules', null, res, rej);\n });\n }\n\n var scrollState;\n q.defer(function (res, rej) {\n if (options.restoreScroll) {\n scrollState = axe.utils.getScrollState();\n }\n\n audit.run(context, options, res, rej);\n });\n q.then(function (data) {\n try {\n if (scrollState) {\n axe.utils.setScrollState(scrollState);\n }\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.auditEnd();\n }\n\n var results = axe.utils.mergeResults(data.map(function (results) {\n return {\n results: results\n };\n }));\n\n if (context.initiator) {\n results = audit.after(results, options);\n results.forEach(axe.utils.publishMetaData);\n results = results.map(axe.utils.finalizeRuleResult);\n }\n\n try {\n resolve(results, cleanup);\n } catch (e) {\n cleanup();\n axe.log(e);\n }\n } catch (e) {\n cleanup();\n reject(e);\n }\n })['catch'](function (e) {\n cleanup();\n reject(e);\n });\n }\n\n axe._runRules = runRules;\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.runVirtualRule = function (ruleId, vNode) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n options.reporter = options.reporter || axe._audit.reporter || 'v1';\n axe._selectorData = {};\n\n if (vNode instanceof axe.AbstractVirtualNode === false) {\n vNode = new SerialVirtualNode(vNode);\n }\n\n var rule = axe._audit.rules.find(function (rule) {\n return rule.id === ruleId;\n });\n\n if (!rule) {\n throw new Error('unknown rule `' + ruleId + '`');\n }\n\n rule = Object.create(rule, {\n excludeHidden: {\n value: false\n }\n });\n var context = {\n include: [vNode]\n };\n var rawResults = rule.runSync(context, options);\n axe.utils.publishMetaData(rawResults);\n axe.utils.finalizeRuleResult(rawResults);\n var results = axe.utils.aggregateResult([rawResults]);\n results.violations.forEach(function (result) {\n return result.nodes.forEach(function (nodeResult) {\n nodeResult.failureSummary = helpers.failureSummary(nodeResult);\n });\n });\n return _extends({}, helpers.getEnvironmentData(), {}, results, {\n toolOptions: options\n });\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function isContext(potential) {\n 'use strict';\n\n switch (true) {\n case typeof potential === 'string':\n case Array.isArray(potential):\n case Node && potential instanceof Node:\n case NodeList && potential instanceof NodeList:\n return true;\n\n case _typeof(potential) !== 'object':\n return false;\n\n case potential.include !== undefined:\n case potential.exclude !== undefined:\n case typeof potential.length === 'number':\n return true;\n\n default:\n return false;\n }\n }\n\n var noop = function noop() {};\n\n function normalizeRunParams(context, options, callback) {\n 'use strict';\n\n var typeErr = new TypeError('axe.run arguments are invalid');\n\n if (!isContext(context)) {\n if (callback !== undefined) {\n throw typeErr;\n }\n\n callback = options;\n options = context;\n context = document;\n }\n\n if (_typeof(options) !== 'object') {\n if (callback !== undefined) {\n throw typeErr;\n }\n\n callback = options;\n options = {};\n }\n\n if (typeof callback !== 'function' && callback !== undefined) {\n throw typeErr;\n }\n\n return {\n context: context,\n options: options,\n callback: callback || noop\n };\n }\n\n axe.run = function (context, options, callback) {\n 'use strict';\n\n if (!axe._audit) {\n throw new Error('No audit configured');\n }\n\n var args = normalizeRunParams(context, options, callback);\n context = args.context;\n options = args.options;\n callback = args.callback;\n options.reporter = options.reporter || axe._audit.reporter || 'v1';\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.start();\n }\n\n var p;\n var reject = noop;\n var resolve = noop;\n\n if (typeof Promise === 'function' && callback === noop) {\n p = new Promise(function (_resolve, _reject) {\n reject = _reject;\n resolve = _resolve;\n });\n }\n\n if (axe._running) {\n var err = 'Axe is already running. Use `await axe.run()` to wait ' + 'for the previous run to finish before starting a new run.';\n callback(err);\n reject(err);\n return p;\n }\n\n axe._running = true;\n\n axe._runRules(context, options, function (rawResults, cleanup) {\n var respond = function respond(results) {\n axe._running = false;\n cleanup();\n\n try {\n callback(null, results);\n } catch (e) {\n axe.log(e);\n }\n\n resolve(results);\n };\n\n if (options.performanceTimer) {\n axe.utils.performanceTimer.end();\n }\n\n try {\n var reporter = axe.getReporter(options.reporter);\n var results = reporter(rawResults, options, respond);\n\n if (results !== undefined) {\n respond(results);\n }\n } catch (err) {\n axe._running = false;\n cleanup();\n callback(err);\n reject(err);\n }\n }, function (err) {\n axe._running = false;\n callback(err);\n reject(err);\n });\n\n return p;\n };\n\n 'use strict';\n\n helpers.failureSummary = function failureSummary(nodeData) {\n 'use strict';\n\n var failingChecks = {};\n failingChecks.none = nodeData.none.concat(nodeData.all);\n failingChecks.any = nodeData.any;\n return Object.keys(failingChecks).map(function (key) {\n if (!failingChecks[key].length) {\n return;\n }\n\n var sum = axe._audit.data.failureSummaries[key];\n\n if (sum && typeof sum.failureMessage === 'function') {\n return sum.failureMessage(failingChecks[key].map(function (check) {\n return check.message || '';\n }));\n }\n }).filter(function (i) {\n return i !== undefined;\n }).join('\\n\\n');\n };\n\n 'use strict';\n\n helpers.getEnvironmentData = function getEnvironmentData() {\n var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n var _win$screen = win.screen,\n screen = _win$screen === void 0 ? {} : _win$screen,\n _win$navigator = win.navigator,\n navigator = _win$navigator === void 0 ? {} : _win$navigator,\n _win$location = win.location,\n location = _win$location === void 0 ? {} : _win$location,\n innerHeight = win.innerHeight,\n innerWidth = win.innerWidth;\n var orientation = screen.msOrientation || screen.orientation || screen.mozOrientation || {};\n return {\n testEngine: {\n name: 'axe-core',\n version: axe.version\n },\n testRunner: {\n name: axe._audit.brand\n },\n testEnvironment: {\n userAgent: navigator.userAgent,\n windowWidth: innerWidth,\n windowHeight: innerHeight,\n orientationAngle: orientation.angle,\n orientationType: orientation.type\n },\n timestamp: new Date().toISOString(),\n url: location.href\n };\n };\n\n 'use strict';\n\n helpers.incompleteFallbackMessage = function incompleteFallbackMessage() {\n 'use strict';\n\n return typeof axe._audit.data.incompleteFallbackMessage === 'function' ? axe._audit.data.incompleteFallbackMessage() : axe._audit.data.incompleteFallbackMessage;\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function normalizeRelatedNodes(node, options) {\n 'use strict';\n\n ['any', 'all', 'none'].forEach(function (type) {\n if (!Array.isArray(node[type])) {\n return;\n }\n\n node[type].filter(function (checkRes) {\n return Array.isArray(checkRes.relatedNodes);\n }).forEach(function (checkRes) {\n checkRes.relatedNodes = checkRes.relatedNodes.map(function (relatedNode) {\n var res = {\n html: relatedNode.source\n };\n\n if (options.elementRef && !relatedNode.fromFrame) {\n res.element = relatedNode.element;\n }\n\n if (options.selectors !== false || relatedNode.fromFrame) {\n res.target = relatedNode.selector;\n }\n\n if (options.xpath) {\n res.xpath = relatedNode.xpath;\n }\n\n return res;\n });\n });\n });\n }\n\n var resultKeys = axe.constants.resultGroups;\n\n helpers.processAggregate = function (results, options) {\n var resultObject = axe.utils.aggregateResult(results);\n resultKeys.forEach(function (key) {\n if (options.resultTypes && !options.resultTypes.includes(key)) {\n (resultObject[key] || []).forEach(function (ruleResult) {\n if (Array.isArray(ruleResult.nodes) && ruleResult.nodes.length > 0) {\n ruleResult.nodes = [ruleResult.nodes[0]];\n }\n });\n }\n\n resultObject[key] = (resultObject[key] || []).map(function (ruleResult) {\n ruleResult = Object.assign({}, ruleResult);\n\n if (Array.isArray(ruleResult.nodes) && ruleResult.nodes.length > 0) {\n ruleResult.nodes = ruleResult.nodes.map(function (subResult) {\n if (_typeof(subResult.node) === 'object') {\n subResult.html = subResult.node.source;\n\n if (options.elementRef && !subResult.node.fromFrame) {\n subResult.element = subResult.node.element;\n }\n\n if (options.selectors !== false || subResult.node.fromFrame) {\n subResult.target = subResult.node.selector;\n }\n\n if (options.xpath) {\n subResult.xpath = subResult.node.xpath;\n }\n }\n\n delete subResult.result;\n delete subResult.node;\n normalizeRelatedNodes(subResult, options);\n return subResult;\n });\n }\n\n resultKeys.forEach(function (key) {\n return delete ruleResult[key];\n });\n delete ruleResult.pageLevel;\n delete ruleResult.result;\n return ruleResult;\n });\n });\n return resultObject;\n };\n\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.addReporter('na', function (results, options, callback) {\n 'use strict';\n\n console.warn('\"na\" reporter will be deprecated in axe v4.0. Use the \"v2\" reporter instead.');\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n var out = helpers.processAggregate(results, options);\n callback(_extends({}, helpers.getEnvironmentData(), {\n toolOptions: options,\n violations: out.violations,\n passes: out.passes,\n incomplete: out.incomplete,\n inapplicable: out.inapplicable\n }));\n });\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.addReporter('no-passes', function (results, options, callback) {\n 'use strict';\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options.resultTypes = ['violations'];\n var out = helpers.processAggregate(results, options);\n callback(_extends({}, helpers.getEnvironmentData(), {\n toolOptions: options,\n violations: out.violations\n }));\n });\n 'use strict';\n\n axe.addReporter('rawEnv', function (results, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n function rawCallback(raw) {\n var env = helpers.getEnvironmentData();\n callback({\n raw: raw,\n env: env\n });\n }\n\n axe.getReporter('raw')(results, options, rawCallback);\n });\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.addReporter('raw', function (results, options, callback) {\n 'use strict';\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!results || !Array.isArray(results)) {\n return callback(results);\n }\n\n var transformedResults = results.map(function (result) {\n var transformedResult = _extends({}, result);\n\n var types = ['passes', 'violations', 'incomplete', 'inapplicable'];\n\n for (var _i = 0, _types = types; _i < _types.length; _i++) {\n var type = _types[_i];\n\n if (transformedResult[type] && Array.isArray(transformedResult[type])) {\n transformedResult[type] = transformedResult[type].map(function (typeResult) {\n return _extends({}, typeResult, {\n node: typeResult.node.toJSON()\n });\n });\n }\n }\n\n return transformedResult;\n });\n callback(transformedResults);\n });\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.addReporter('v1', function (results, options, callback) {\n 'use strict';\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n var out = helpers.processAggregate(results, options);\n\n var addFailureSummaries = function addFailureSummaries(result) {\n result.nodes.forEach(function (nodeResult) {\n nodeResult.failureSummary = helpers.failureSummary(nodeResult);\n });\n };\n\n out.incomplete.forEach(addFailureSummaries);\n out.violations.forEach(addFailureSummaries);\n callback(_extends({}, helpers.getEnvironmentData(), {\n toolOptions: options,\n violations: out.violations,\n passes: out.passes,\n incomplete: out.incomplete,\n inapplicable: out.inapplicable\n }));\n });\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n axe.addReporter('v2', function (results, options, callback) {\n 'use strict';\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n var out = helpers.processAggregate(results, options);\n callback(_extends({}, helpers.getEnvironmentData(), {\n toolOptions: options,\n violations: out.violations,\n passes: out.passes,\n incomplete: out.incomplete,\n inapplicable: out.inapplicable\n }));\n }, true);\n 'use strict';\n\n axe.utils.aggregate = function (map, values, initial) {\n values = values.slice();\n\n if (initial) {\n values.push(initial);\n }\n\n var sorting = values.map(function (val) {\n return map.indexOf(val);\n }).sort();\n return map[sorting.pop()];\n };\n\n 'use strict';\n\n var _axe$constants = axe.constants,\n CANTTELL_PRIO = _axe$constants.CANTTELL_PRIO,\n FAIL_PRIO = _axe$constants.FAIL_PRIO;\n var checkMap = [];\n checkMap[axe.constants.PASS_PRIO] = true;\n checkMap[axe.constants.CANTTELL_PRIO] = null;\n checkMap[axe.constants.FAIL_PRIO] = false;\n var checkTypes = ['any', 'all', 'none'];\n\n function anyAllNone(obj, functor) {\n return checkTypes.reduce(function (out, type) {\n out[type] = (obj[type] || []).map(function (val) {\n return functor(val, type);\n });\n return out;\n }, {});\n }\n\n axe.utils.aggregateChecks = function (nodeResOriginal) {\n var nodeResult = Object.assign({}, nodeResOriginal);\n anyAllNone(nodeResult, function (check, type) {\n var i = typeof check.result === 'undefined' ? -1 : checkMap.indexOf(check.result);\n check.priority = i !== -1 ? i : axe.constants.CANTTELL_PRIO;\n\n if (type === 'none') {\n if (check.priority === axe.constants.PASS_PRIO) {\n check.priority = axe.constants.FAIL_PRIO;\n } else if (check.priority === axe.constants.FAIL_PRIO) {\n check.priority = axe.constants.PASS_PRIO;\n }\n }\n });\n var priorities = {\n all: nodeResult.all.reduce(function (a, b) {\n return Math.max(a, b.priority);\n }, 0),\n none: nodeResult.none.reduce(function (a, b) {\n return Math.max(a, b.priority);\n }, 0),\n any: nodeResult.any.reduce(function (a, b) {\n return Math.min(a, b.priority);\n }, 4) % 4\n };\n nodeResult.priority = Math.max(priorities.all, priorities.none, priorities.any);\n var impacts = [];\n checkTypes.forEach(function (type) {\n nodeResult[type] = nodeResult[type].filter(function (check) {\n return check.priority === nodeResult.priority && check.priority === priorities[type];\n });\n nodeResult[type].forEach(function (check) {\n return impacts.push(check.impact);\n });\n });\n\n if ([CANTTELL_PRIO, FAIL_PRIO].includes(nodeResult.priority)) {\n nodeResult.impact = axe.utils.aggregate(axe.constants.impact, impacts);\n } else {\n nodeResult.impact = null;\n }\n\n anyAllNone(nodeResult, function (c) {\n delete c.result;\n delete c.priority;\n });\n nodeResult.result = axe.constants.results[nodeResult.priority];\n delete nodeResult.priority;\n return nodeResult;\n };\n\n 'use strict';\n\n (function () {\n axe.utils.aggregateNodeResults = function (nodeResults) {\n var ruleResult = {};\n nodeResults = nodeResults.map(function (nodeResult) {\n if (nodeResult.any && nodeResult.all && nodeResult.none) {\n return axe.utils.aggregateChecks(nodeResult);\n } else if (Array.isArray(nodeResult.node)) {\n return axe.utils.finalizeRuleResult(nodeResult);\n } else {\n throw new TypeError('Invalid Result type');\n }\n });\n\n if (nodeResults && nodeResults.length) {\n var resultList = nodeResults.map(function (node) {\n return node.result;\n });\n ruleResult.result = axe.utils.aggregate(axe.constants.results, resultList, ruleResult.result);\n } else {\n ruleResult.result = 'inapplicable';\n }\n\n axe.constants.resultGroups.forEach(function (group) {\n return ruleResult[group] = [];\n });\n nodeResults.forEach(function (nodeResult) {\n var groupName = axe.constants.resultGroupMap[nodeResult.result];\n ruleResult[groupName].push(nodeResult);\n });\n var impactGroup = axe.constants.FAIL_GROUP;\n\n if (ruleResult[impactGroup].length === 0) {\n impactGroup = axe.constants.CANTTELL_GROUP;\n }\n\n if (ruleResult[impactGroup].length > 0) {\n var impactList = ruleResult[impactGroup].map(function (failure) {\n return failure.impact;\n });\n ruleResult.impact = axe.utils.aggregate(axe.constants.impact, impactList) || null;\n } else {\n ruleResult.impact = null;\n }\n\n return ruleResult;\n };\n })();\n\n 'use strict';\n\n function copyToGroup(resultObject, subResult, group) {\n var resultCopy = Object.assign({}, subResult);\n resultCopy.nodes = (resultCopy[group] || []).concat();\n axe.constants.resultGroups.forEach(function (group) {\n delete resultCopy[group];\n });\n resultObject[group].push(resultCopy);\n }\n\n axe.utils.aggregateResult = function (results) {\n var resultObject = {};\n axe.constants.resultGroups.forEach(function (groupName) {\n return resultObject[groupName] = [];\n });\n results.forEach(function (subResult) {\n if (subResult.error) {\n copyToGroup(resultObject, subResult, axe.constants.CANTTELL_GROUP);\n } else if (subResult.result === axe.constants.NA) {\n copyToGroup(resultObject, subResult, axe.constants.NA_GROUP);\n } else {\n axe.constants.resultGroups.forEach(function (group) {\n if (Array.isArray(subResult[group]) && subResult[group].length > 0) {\n copyToGroup(resultObject, subResult, group);\n }\n });\n }\n });\n return resultObject;\n };\n\n 'use strict';\n\n function areStylesSet(el, styles, stopAt) {\n 'use strict';\n\n var styl = window.getComputedStyle(el, null);\n\n if (!styl) {\n return false;\n }\n\n for (var i = 0; i < styles.length; ++i) {\n var att = styles[i];\n\n if (styl.getPropertyValue(att.property) === att.value) {\n return true;\n }\n }\n\n if (!el.parentNode || el.nodeName.toUpperCase() === stopAt.toUpperCase()) {\n return false;\n }\n\n return areStylesSet(el.parentNode, styles, stopAt);\n }\n\n axe.utils.areStylesSet = areStylesSet;\n 'use strict';\n\n axe.utils.assert = function assert(bool, message) {\n if (!bool) {\n throw new Error(message);\n }\n };\n\n 'use strict';\n\n axe.utils.checkHelper = function checkHelper(checkResult, options, resolve, reject) {\n 'use strict';\n\n return {\n isAsync: false,\n async: function async() {\n this.isAsync = true;\n return function (result) {\n if (result instanceof Error === false) {\n checkResult.result = result;\n resolve(checkResult);\n } else {\n reject(result);\n }\n };\n },\n data: function data(_data) {\n checkResult.data = _data;\n },\n relatedNodes: function relatedNodes(nodes) {\n nodes = nodes instanceof Node ? [nodes] : axe.utils.toArray(nodes);\n checkResult.relatedNodes = nodes.map(function (element) {\n return new axe.utils.DqElement(element, options);\n });\n }\n };\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n axe.utils.clone = function (obj) {\n 'use strict';\n\n var index,\n length,\n out = obj;\n\n if (obj !== null && _typeof(obj) === 'object') {\n if (Array.isArray(obj)) {\n out = [];\n\n for (index = 0, length = obj.length; index < length; index++) {\n out[index] = axe.utils.clone(obj[index]);\n }\n } else {\n out = {};\n\n for (index in obj) {\n out[index] = axe.utils.clone(obj[index]);\n }\n }\n }\n\n return out;\n };\n\n 'use strict';\n\n function err(message, node) {\n 'use strict';\n\n var selector;\n\n if (axe._tree) {\n selector = axe.utils.getSelector(node);\n }\n\n return new Error(message + ': ' + (selector || node));\n }\n\n axe.utils.sendCommandToFrame = function (node, parameters, resolve, reject) {\n 'use strict';\n\n var win = node.contentWindow;\n\n if (!win) {\n axe.log('Frame does not have a content window', node);\n resolve(null);\n return;\n }\n\n var timeout = setTimeout(function () {\n timeout = setTimeout(function () {\n if (!parameters.debug) {\n resolve(null);\n } else {\n reject(err('No response from frame', node));\n }\n }, 0);\n }, 500);\n axe.utils.respondable(win, 'axe.ping', null, undefined, function () {\n clearTimeout(timeout);\n var frameWaitTime = parameters.options && parameters.options.frameWaitTime || 6e4;\n timeout = setTimeout(function collectResultFramesTimeout() {\n reject(err('Axe in frame timed out', node));\n }, frameWaitTime);\n axe.utils.respondable(win, 'axe.start', parameters, undefined, function (data) {\n clearTimeout(timeout);\n\n if (data instanceof Error === false) {\n resolve(data);\n } else {\n reject(data);\n }\n });\n });\n };\n\n function collectResultsFromFrames(context, options, command, parameter, resolve, reject) {\n 'use strict';\n\n var q = axe.utils.queue();\n var frames = context.frames;\n frames.forEach(function (frame) {\n var params = {\n options: options,\n command: command,\n parameter: parameter,\n context: {\n initiator: false,\n page: context.page,\n include: frame.include || [],\n exclude: frame.exclude || []\n }\n };\n q.defer(function (res, rej) {\n var node = frame.node;\n axe.utils.sendCommandToFrame(node, params, function (data) {\n if (data) {\n return res({\n results: data,\n frameElement: node,\n frame: axe.utils.getSelector(node)\n });\n }\n\n res(null);\n }, rej);\n });\n });\n q.then(function (data) {\n resolve(axe.utils.mergeResults(data, options));\n })['catch'](reject);\n }\n\n axe.utils.collectResultsFromFrames = collectResultsFromFrames;\n 'use strict';\n\n axe.utils.contains = function (vNode, otherVNode) {\n 'use strict';\n\n function containsShadowChild(vNode, otherVNode) {\n if (vNode.shadowId === otherVNode.shadowId) {\n return true;\n }\n\n return !!vNode.children.find(function (child) {\n return containsShadowChild(child, otherVNode);\n });\n }\n\n if (vNode.shadowId || otherVNode.shadowId) {\n return containsShadowChild(vNode, otherVNode);\n }\n\n if (vNode.actualNode) {\n if (typeof vNode.actualNode.contains === 'function') {\n return vNode.actualNode.contains(otherVNode.actualNode);\n }\n\n return !!(vNode.actualNode.compareDocumentPosition(otherVNode.actualNode) & 16);\n } else {\n do {\n if (otherVNode === vNode) {\n return true;\n }\n } while (otherVNode = otherVNode && otherVNode.parent);\n }\n\n return false;\n };\n\n 'use strict';\n\n (function (axe) {\n var parser = new axe.imports.CssSelectorParser();\n parser.registerSelectorPseudos('not');\n parser.registerNestingOperators('>');\n parser.registerAttrEqualityMods('^', '$', '*');\n axe.utils.cssParser = parser;\n })(axe);\n\n 'use strict';\n\n function truncate(str, maxLength) {\n maxLength = maxLength || 300;\n\n if (str.length > maxLength) {\n var index = str.indexOf('>');\n str = str.substring(0, index + 1);\n }\n\n return str;\n }\n\n function getSource(element) {\n var source = element.outerHTML;\n\n if (!source && typeof XMLSerializer === 'function') {\n source = new XMLSerializer().serializeToString(element);\n }\n\n return truncate(source || '');\n }\n\n function DqElement(element, options, spec) {\n this._fromFrame = !!spec;\n this.spec = spec || {};\n\n if (options && options.absolutePaths) {\n this._options = {\n toRoot: true\n };\n }\n\n this.source = this.spec.source !== undefined ? this.spec.source : getSource(element);\n this._element = element;\n }\n\n DqElement.prototype = {\n get selector() {\n return this.spec.selector || [axe.utils.getSelector(this.element, this._options)];\n },\n\n get xpath() {\n return this.spec.xpath || [axe.utils.getXpath(this.element)];\n },\n\n get element() {\n return this._element;\n },\n\n get fromFrame() {\n return this._fromFrame;\n },\n\n toJSON: function toJSON() {\n 'use strict';\n\n return {\n selector: this.selector,\n source: this.source,\n xpath: this.xpath\n };\n }\n };\n\n DqElement.fromFrame = function (node, options, frame) {\n node.selector.unshift(frame.selector);\n node.xpath.unshift(frame.xpath);\n return new axe.utils.DqElement(frame.element, options, node);\n };\n\n axe.utils.DqElement = DqElement;\n 'use strict';\n\n axe.utils.matchesSelector = function () {\n 'use strict';\n\n var method;\n\n function getMethod(node) {\n var index,\n candidate,\n candidates = ['matches', 'matchesSelector', 'mozMatchesSelector', 'webkitMatchesSelector', 'msMatchesSelector'],\n length = candidates.length;\n\n for (index = 0; index < length; index++) {\n candidate = candidates[index];\n\n if (node[candidate]) {\n return candidate;\n }\n }\n }\n\n return function (node, selector) {\n if (!method || !node[method]) {\n method = getMethod(node);\n }\n\n if (node[method]) {\n return node[method](selector);\n }\n\n return false;\n };\n }();\n\n 'use strict';\n\n axe.utils.escapeSelector = function (value) {\n 'use strict';\n\n var string = String(value);\n var length = string.length;\n var index = -1;\n var codeUnit;\n var result = '';\n var firstCodeUnit = string.charCodeAt(0);\n\n while (++index < length) {\n codeUnit = string.charCodeAt(index);\n\n if (codeUnit == 0) {\n result += \"\\uFFFD\";\n continue;\n }\n\n if (codeUnit >= 1 && codeUnit <= 31 || codeUnit == 127 || index == 0 && codeUnit >= 48 && codeUnit <= 57 || index == 1 && codeUnit >= 48 && codeUnit <= 57 && firstCodeUnit == 45) {\n result += '\\\\' + codeUnit.toString(16) + ' ';\n continue;\n }\n\n if (index == 0 && length == 1 && codeUnit == 45) {\n result += '\\\\' + string.charAt(index);\n continue;\n }\n\n if (codeUnit >= 128 || codeUnit == 45 || codeUnit == 95 || codeUnit >= 48 && codeUnit <= 57 || codeUnit >= 65 && codeUnit <= 90 || codeUnit >= 97 && codeUnit <= 122) {\n result += string.charAt(index);\n continue;\n }\n\n result += '\\\\' + string.charAt(index);\n }\n\n return result;\n };\n\n 'use strict';\n\n axe.utils.extendMetaData = function (to, from) {\n Object.assign(to, from);\n Object.keys(from).filter(function (prop) {\n return typeof from[prop] === 'function';\n }).forEach(function (prop) {\n to[prop] = null;\n\n try {\n to[prop] = from[prop](to);\n } catch (e) {}\n });\n };\n\n 'use strict';\n\n axe.utils.finalizeRuleResult = function (ruleResult) {\n Object.assign(ruleResult, axe.utils.aggregateNodeResults(ruleResult.nodes));\n delete ruleResult.nodes;\n return ruleResult;\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n axe.utils.findBy = function (array, key, value) {\n if (Array.isArray(array)) {\n return array.find(function (obj) {\n return _typeof(obj) === 'object' && obj[key] === value;\n });\n }\n };\n\n 'use strict';\n\n var axe = axe || {\n utils: {}\n };\n\n function getSlotChildren(node) {\n var retVal = [];\n node = node.firstChild;\n\n while (node) {\n retVal.push(node);\n node = node.nextSibling;\n }\n\n return retVal;\n }\n\n function flattenTree(node, shadowId, parent) {\n var retVal, realArray, nodeName;\n\n function reduceShadowDOM(res, child, parent) {\n var replacements = flattenTree(child, shadowId, parent);\n\n if (replacements) {\n res = res.concat(replacements);\n }\n\n return res;\n }\n\n if (node.documentElement) {\n node = node.documentElement;\n }\n\n nodeName = node.nodeName.toLowerCase();\n\n if (axe.utils.isShadowRoot(node)) {\n retVal = new VirtualNode(node, parent, shadowId);\n shadowId = 'a' + Math.random().toString().substring(2);\n realArray = Array.from(node.shadowRoot.childNodes);\n retVal.children = realArray.reduce(function (res, child) {\n return reduceShadowDOM(res, child, retVal);\n }, []);\n return [retVal];\n } else {\n if (nodeName === 'content' && typeof node.getDistributedNodes === 'function') {\n realArray = Array.from(node.getDistributedNodes());\n return realArray.reduce(function (res, child) {\n return reduceShadowDOM(res, child, parent);\n }, []);\n } else if (nodeName === 'slot' && typeof node.assignedNodes === 'function') {\n realArray = Array.from(node.assignedNodes());\n\n if (!realArray.length) {\n realArray = getSlotChildren(node);\n }\n\n var styl = window.getComputedStyle(node);\n\n if (false && styl.display !== 'contents') {\n retVal = new VirtualNode(node, parent, shadowId);\n retVal.children = realArray.reduce(function (res, child) {\n return reduceShadowDOM(res, child, retVal);\n }, []);\n return [retVal];\n } else {\n return realArray.reduce(function (res, child) {\n return reduceShadowDOM(res, child, parent);\n }, []);\n }\n } else {\n if (node.nodeType === 1) {\n retVal = new VirtualNode(node, parent, shadowId);\n realArray = Array.from(node.childNodes);\n retVal.children = realArray.reduce(function (res, child) {\n return reduceShadowDOM(res, child, retVal);\n }, []);\n return [retVal];\n } else if (node.nodeType === 3) {\n return [new VirtualNode(node, parent)];\n }\n\n return undefined;\n }\n }\n }\n\n axe.utils.getFlattenedTree = function (node, shadowId) {\n axe._cache.set('nodeMap', new WeakMap());\n\n return flattenTree(node, shadowId);\n };\n\n axe.utils.getNodeFromTree = function (vNode, node) {\n var el = node || vNode;\n return axe._cache.get('nodeMap') ? axe._cache.get('nodeMap').get(el) : null;\n };\n\n 'use strict';\n\n axe.utils.getAllChecks = function getAllChecks(object) {\n 'use strict';\n\n var result = [];\n return result.concat(object.any || []).concat(object.all || []).concat(object.none || []);\n };\n\n 'use strict';\n\n axe.utils.getBaseLang = function getBaseLang(lang) {\n if (!lang) {\n return '';\n }\n\n return lang.trim().split('-')[0].toLowerCase();\n };\n\n 'use strict';\n\n axe.utils.getCheckMessage = function getCheckMessage(checkId, type, data) {\n var check = axe._audit.data.checks[checkId];\n\n if (!check) {\n throw new Error('Cannot get message for unknown check: '.concat(checkId, '.'));\n }\n\n if (!check.messages[type]) {\n throw new Error('Check \"'.concat(checkId, '\"\" does not have a \"').concat(type, '\" message.'));\n }\n\n return axe.utils.processMessage(check.messages[type], data);\n };\n\n 'use strict';\n\n axe.utils.getCheckOption = function (check, ruleID, options) {\n var ruleCheckOption = ((options.rules && options.rules[ruleID] || {}).checks || {})[check.id];\n var checkOption = (options.checks || {})[check.id];\n var enabled = check.enabled;\n var opts = check.options;\n\n if (checkOption) {\n if (checkOption.hasOwnProperty('enabled')) {\n enabled = checkOption.enabled;\n }\n\n if (checkOption.hasOwnProperty('options')) {\n opts = checkOption.options;\n }\n }\n\n if (ruleCheckOption) {\n if (ruleCheckOption.hasOwnProperty('enabled')) {\n enabled = ruleCheckOption.enabled;\n }\n\n if (ruleCheckOption.hasOwnProperty('options')) {\n opts = ruleCheckOption.options;\n }\n }\n\n return {\n enabled: enabled,\n options: opts,\n absolutePaths: options.absolutePaths\n };\n };\n\n 'use strict';\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === '[object Arguments]')) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) {\n break;\n }\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) {\n _i['return']();\n }\n } finally {\n if (_d) {\n throw _e;\n }\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) {\n return arr;\n }\n }\n\n function isMostlyNumbers() {\n var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return str.length !== 0 && (str.match(/[0-9]/g) || '').length >= str.length / 2;\n }\n\n function splitString(str, splitIndex) {\n return [str.substring(0, splitIndex), str.substring(splitIndex)];\n }\n\n function trimRight(str) {\n return str.replace(/\\s+$/, '');\n }\n\n function uriParser(url) {\n var original = url;\n var protocol = '',\n domain = '',\n port = '',\n path = '',\n query = '',\n hash = '';\n\n if (url.includes('#')) {\n var _splitString = splitString(url, url.indexOf('#'));\n\n var _splitString2 = _slicedToArray(_splitString, 2);\n\n url = _splitString2[0];\n hash = _splitString2[1];\n }\n\n if (url.includes('?')) {\n var _splitString3 = splitString(url, url.indexOf('?'));\n\n var _splitString4 = _slicedToArray(_splitString3, 2);\n\n url = _splitString4[0];\n query = _splitString4[1];\n }\n\n if (url.includes('://')) {\n var _url$split = url.split('://');\n\n var _url$split2 = _slicedToArray(_url$split, 2);\n\n protocol = _url$split2[0];\n url = _url$split2[1];\n\n var _splitString5 = splitString(url, url.indexOf('/'));\n\n var _splitString6 = _slicedToArray(_splitString5, 2);\n\n domain = _splitString6[0];\n url = _splitString6[1];\n } else if (url.substr(0, 2) === '//') {\n url = url.substr(2);\n\n var _splitString7 = splitString(url, url.indexOf('/'));\n\n var _splitString8 = _slicedToArray(_splitString7, 2);\n\n domain = _splitString8[0];\n url = _splitString8[1];\n }\n\n if (domain.substr(0, 4) === 'www.') {\n domain = domain.substr(4);\n }\n\n if (domain && domain.includes(':')) {\n var _splitString9 = splitString(domain, domain.indexOf(':'));\n\n var _splitString10 = _slicedToArray(_splitString9, 2);\n\n domain = _splitString10[0];\n port = _splitString10[1];\n }\n\n path = url;\n return {\n original: original,\n protocol: protocol,\n domain: domain,\n port: port,\n path: path,\n query: query,\n hash: hash\n };\n }\n\n axe.utils.getFriendlyUriEnd = function getFriendlyUriEnd() {\n var uri = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (uri.length <= 1 || uri.substr(0, 5) === 'data:' || uri.substr(0, 11) === 'javascript:' || uri.includes('?')) {\n return;\n }\n\n var currentDomain = options.currentDomain,\n _options$maxLength = options.maxLength,\n maxLength = _options$maxLength === void 0 ? 25 : _options$maxLength;\n\n var _uriParser = uriParser(uri),\n path = _uriParser.path,\n domain = _uriParser.domain,\n hash = _uriParser.hash;\n\n var pathEnd = path.substr(path.substr(0, path.length - 2).lastIndexOf('/') + 1);\n\n if (hash) {\n if (pathEnd && (pathEnd + hash).length <= maxLength) {\n return trimRight(pathEnd + hash);\n } else if (pathEnd.length < 2 && hash.length > 2 && hash.length <= maxLength) {\n return trimRight(hash);\n } else {\n return;\n }\n } else if (domain && domain.length < maxLength && path.length <= 1) {\n return trimRight(domain + path);\n }\n\n if (path === '/' + pathEnd && domain && currentDomain && domain !== currentDomain && (domain + path).length <= maxLength) {\n return trimRight(domain + path);\n }\n\n var lastDotIndex = pathEnd.lastIndexOf('.');\n\n if ((lastDotIndex === -1 || lastDotIndex > 1) && (lastDotIndex !== -1 || pathEnd.length > 2) && pathEnd.length <= maxLength && !pathEnd.match(/index(\\.[a-zA-Z]{2-4})?/) && !isMostlyNumbers(pathEnd)) {\n return trimRight(pathEnd);\n }\n };\n\n 'use strict';\n\n axe.utils.getNodeAttributes = function getNodeAttributes(node) {\n if (node.attributes instanceof window.NamedNodeMap) {\n return node.attributes;\n }\n\n return node.cloneNode(false).attributes;\n };\n\n 'use strict';\n\n axe.utils.getRootNode = function getRootNode(node) {\n var doc = node.getRootNode && node.getRootNode() || document;\n\n if (doc === node) {\n doc = document;\n }\n\n return doc;\n };\n\n 'use strict';\n\n axe.utils.getScroll = function getScroll(elm) {\n var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var overflowX = elm.scrollWidth > elm.clientWidth + buffer;\n var overflowY = elm.scrollHeight > elm.clientHeight + buffer;\n\n if (!(overflowX || overflowY)) {\n return;\n }\n\n var style = window.getComputedStyle(elm);\n var overflowXStyle = style.getPropertyValue('overflow-x');\n var overflowYStyle = style.getPropertyValue('overflow-y');\n var scrollableX = overflowXStyle !== 'visible' && overflowXStyle !== 'hidden';\n var scrollableY = overflowYStyle !== 'visible' && overflowYStyle !== 'hidden';\n\n if (overflowX && scrollableX || overflowY && scrollableY) {\n return {\n elm: elm,\n top: elm.scrollTop,\n left: elm.scrollLeft\n };\n }\n };\n\n 'use strict';\n\n var escapeSelector = axe.utils.escapeSelector;\n var isXHTML;\n var ignoredAttributes = ['class', 'style', 'id', 'selected', 'checked', 'disabled', 'tabindex', 'aria-checked', 'aria-selected', 'aria-invalid', 'aria-activedescendant', 'aria-busy', 'aria-disabled', 'aria-expanded', 'aria-grabbed', 'aria-pressed', 'aria-valuenow'];\n var MAXATTRIBUTELENGTH = 31;\n\n function getAttributeNameValue(node, at) {\n var name = at.name;\n var atnv;\n\n if (name.indexOf('href') !== -1 || name.indexOf('src') !== -1) {\n var friendly = axe.utils.getFriendlyUriEnd(node.getAttribute(name));\n\n if (friendly) {\n var value = encodeURI(friendly);\n\n if (value) {\n atnv = escapeSelector(at.name) + '$=\"' + escapeSelector(value) + '\"';\n } else {\n return;\n }\n } else {\n atnv = escapeSelector(at.name) + '=\"' + escapeSelector(node.getAttribute(name)) + '\"';\n }\n } else {\n atnv = escapeSelector(name) + '=\"' + escapeSelector(at.value) + '\"';\n }\n\n return atnv;\n }\n\n function countSort(a, b) {\n return a.count < b.count ? -1 : a.count === b.count ? 0 : 1;\n }\n\n function filterAttributes(at) {\n return !ignoredAttributes.includes(at.name) && at.name.indexOf(':') === -1 && (!at.value || at.value.length < MAXATTRIBUTELENGTH);\n }\n\n axe.utils.getSelectorData = function (domTree) {\n var data = {\n classes: {},\n tags: {},\n attributes: {}\n };\n domTree = Array.isArray(domTree) ? domTree : [domTree];\n var currentLevel = domTree.slice();\n var stack = [];\n\n var _loop = function _loop() {\n var current = currentLevel.pop();\n var node = current.actualNode;\n\n if (!!node.querySelectorAll) {\n var tag = node.nodeName;\n\n if (data.tags[tag]) {\n data.tags[tag]++;\n } else {\n data.tags[tag] = 1;\n }\n\n if (node.classList) {\n Array.from(node.classList).forEach(function (cl) {\n var ind = escapeSelector(cl);\n\n if (data.classes[ind]) {\n data.classes[ind]++;\n } else {\n data.classes[ind] = 1;\n }\n });\n }\n\n if (node.hasAttributes()) {\n Array.from(axe.utils.getNodeAttributes(node)).filter(filterAttributes).forEach(function (at) {\n var atnv = getAttributeNameValue(node, at);\n\n if (atnv) {\n if (data.attributes[atnv]) {\n data.attributes[atnv]++;\n } else {\n data.attributes[atnv] = 1;\n }\n }\n });\n }\n }\n\n if (current.children.length) {\n stack.push(currentLevel);\n currentLevel = current.children.slice();\n }\n\n while (!currentLevel.length && stack.length) {\n currentLevel = stack.pop();\n }\n };\n\n while (currentLevel.length) {\n _loop();\n }\n\n return data;\n };\n\n function uncommonClasses(node, selectorData) {\n var retVal = [];\n var classData = selectorData.classes;\n var tagData = selectorData.tags;\n\n if (node.classList) {\n Array.from(node.classList).forEach(function (cl) {\n var ind = escapeSelector(cl);\n\n if (classData[ind] < tagData[node.nodeName]) {\n retVal.push({\n name: ind,\n count: classData[ind],\n species: 'class'\n });\n }\n });\n }\n\n return retVal.sort(countSort);\n }\n\n function getNthChildString(elm, selector) {\n var siblings = elm.parentNode && Array.from(elm.parentNode.children || '') || [];\n var hasMatchingSiblings = siblings.find(function (sibling) {\n return sibling !== elm && axe.utils.matchesSelector(sibling, selector);\n });\n\n if (hasMatchingSiblings) {\n var nthChild = 1 + siblings.indexOf(elm);\n return ':nth-child(' + nthChild + ')';\n } else {\n return '';\n }\n }\n\n function getElmId(elm) {\n if (!elm.getAttribute('id')) {\n return;\n }\n\n var doc = elm.getRootNode && elm.getRootNode() || document;\n var id = '#' + escapeSelector(elm.getAttribute('id') || '');\n\n if (!id.match(/player_uid_/) && doc.querySelectorAll(id).length === 1) {\n return id;\n }\n }\n\n function getBaseSelector(elm) {\n if (typeof isXHTML === 'undefined') {\n isXHTML = axe.utils.isXHTML(document);\n }\n\n return escapeSelector(isXHTML ? elm.localName : elm.nodeName.toLowerCase());\n }\n\n function uncommonAttributes(node, selectorData) {\n var retVal = [];\n var attData = selectorData.attributes;\n var tagData = selectorData.tags;\n\n if (node.hasAttributes()) {\n Array.from(axe.utils.getNodeAttributes(node)).filter(filterAttributes).forEach(function (at) {\n var atnv = getAttributeNameValue(node, at);\n\n if (atnv && attData[atnv] < tagData[node.nodeName]) {\n retVal.push({\n name: atnv,\n count: attData[atnv],\n species: 'attribute'\n });\n }\n });\n }\n\n return retVal.sort(countSort);\n }\n\n function getThreeLeastCommonFeatures(elm, selectorData) {\n var selector = '';\n var features;\n var clss = uncommonClasses(elm, selectorData);\n var atts = uncommonAttributes(elm, selectorData);\n\n if (clss.length && clss[0].count === 1) {\n features = [clss[0]];\n } else if (atts.length && atts[0].count === 1) {\n features = [atts[0]];\n selector = getBaseSelector(elm);\n } else {\n features = clss.concat(atts);\n features.sort(countSort);\n features = features.slice(0, 3);\n\n if (!features.some(function (feat) {\n return feat.species === 'class';\n })) {\n selector = getBaseSelector(elm);\n } else {\n features.sort(function (a, b) {\n return a.species !== b.species && a.species === 'class' ? -1 : a.species === b.species ? 0 : 1;\n });\n }\n }\n\n return selector += features.reduce(function (val, feat) {\n switch (feat.species) {\n case 'class':\n return val + '.' + feat.name;\n\n case 'attribute':\n return val + '[' + feat.name + ']';\n }\n\n return val;\n }, '');\n }\n\n function generateSelector(elm, options, doc) {\n if (!axe._selectorData) {\n throw new Error('Expect axe._selectorData to be set up');\n }\n\n var _options$toRoot = options.toRoot,\n toRoot = _options$toRoot === void 0 ? false : _options$toRoot;\n var selector;\n var similar;\n\n do {\n var features = getElmId(elm);\n\n if (!features) {\n features = getThreeLeastCommonFeatures(elm, axe._selectorData);\n features += getNthChildString(elm, features);\n }\n\n if (selector) {\n selector = features + ' > ' + selector;\n } else {\n selector = features;\n }\n\n if (!similar) {\n similar = Array.from(doc.querySelectorAll(selector));\n } else {\n similar = similar.filter(function (item) {\n return axe.utils.matchesSelector(item, selector);\n });\n }\n\n elm = elm.parentElement;\n } while ((similar.length > 1 || toRoot) && elm && elm.nodeType !== 11);\n\n if (similar.length === 1) {\n return selector;\n } else if (selector.indexOf(' > ') !== -1) {\n return ':root' + selector.substring(selector.indexOf(' > '));\n }\n\n return ':root';\n }\n\n axe.utils.getSelector = function createUniqueSelector(elm) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!elm) {\n return '';\n }\n\n var doc = elm.getRootNode && elm.getRootNode() || document;\n\n if (doc.nodeType === 11) {\n var stack = [];\n\n while (doc.nodeType === 11) {\n if (!doc.host) {\n return '';\n }\n\n stack.push({\n elm: elm,\n doc: doc\n });\n elm = doc.host;\n doc = elm.getRootNode();\n }\n\n stack.push({\n elm: elm,\n doc: doc\n });\n return stack.reverse().map(function (comp) {\n return generateSelector(comp.elm, options, comp.doc);\n });\n } else {\n return generateSelector(elm, options, doc);\n }\n };\n\n 'use strict';\n\n axe.utils.getStyleSheetFactory = function getStyleSheetFactory(dynamicDoc) {\n if (!dynamicDoc) {\n throw new Error('axe.utils.getStyleSheetFactory should be invoked with an argument');\n }\n\n return function (options) {\n var data = options.data,\n _options$isCrossOrigi = options.isCrossOrigin,\n isCrossOrigin = _options$isCrossOrigi === void 0 ? false : _options$isCrossOrigi,\n shadowId = options.shadowId,\n root = options.root,\n priority = options.priority,\n _options$isLink = options.isLink,\n isLink = _options$isLink === void 0 ? false : _options$isLink;\n var style = dynamicDoc.createElement('style');\n\n if (isLink) {\n var text = dynamicDoc.createTextNode('@import \"'.concat(data.href, '\"'));\n style.appendChild(text);\n } else {\n style.appendChild(dynamicDoc.createTextNode(data));\n }\n\n dynamicDoc.head.appendChild(style);\n return {\n sheet: style.sheet,\n isCrossOrigin: isCrossOrigin,\n shadowId: shadowId,\n root: root,\n priority: priority\n };\n };\n };\n\n 'use strict';\n\n function getXPathArray(node, path) {\n var sibling, count;\n\n if (!node) {\n return [];\n }\n\n if (!path && node.nodeType === 9) {\n path = [{\n str: 'html'\n }];\n return path;\n }\n\n path = path || [];\n\n if (node.parentNode && node.parentNode !== node) {\n path = getXPathArray(node.parentNode, path);\n }\n\n if (node.previousSibling) {\n count = 1;\n sibling = node.previousSibling;\n\n do {\n if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {\n count++;\n }\n\n sibling = sibling.previousSibling;\n } while (sibling);\n\n if (count === 1) {\n count = null;\n }\n } else if (node.nextSibling) {\n sibling = node.nextSibling;\n\n do {\n if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {\n count = 1;\n sibling = null;\n } else {\n count = null;\n sibling = sibling.previousSibling;\n }\n } while (sibling);\n }\n\n if (node.nodeType === 1) {\n var element = {};\n element.str = node.nodeName.toLowerCase();\n var id = node.getAttribute && axe.utils.escapeSelector(node.getAttribute('id'));\n\n if (id && node.ownerDocument.querySelectorAll('#' + id).length === 1) {\n element.id = node.getAttribute('id');\n }\n\n if (count > 1) {\n element.count = count;\n }\n\n path.push(element);\n }\n\n return path;\n }\n\n function xpathToString(xpathArray) {\n return xpathArray.reduce(function (str, elm) {\n if (elm.id) {\n return '/'.concat(elm.str, '[@id=\\'').concat(elm.id, '\\']');\n } else {\n return str + '/'.concat(elm.str) + (elm.count > 0 ? '['.concat(elm.count, ']') : '');\n }\n }, '');\n }\n\n axe.utils.getXpath = function getXpath(node) {\n var xpathArray = getXPathArray(node);\n return xpathToString(xpathArray);\n };\n\n 'use strict';\n\n var styleSheet;\n\n function injectStyle(style) {\n 'use strict';\n\n if (styleSheet && styleSheet.parentNode) {\n if (styleSheet.styleSheet === undefined) {\n styleSheet.appendChild(document.createTextNode(style));\n } else {\n styleSheet.styleSheet.cssText += style;\n }\n\n return styleSheet;\n }\n\n if (!style) {\n return;\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n styleSheet = document.createElement('style');\n styleSheet.type = 'text/css';\n\n if (styleSheet.styleSheet === undefined) {\n styleSheet.appendChild(document.createTextNode(style));\n } else {\n styleSheet.styleSheet.cssText = style;\n }\n\n head.appendChild(styleSheet);\n return styleSheet;\n }\n\n axe.utils.injectStyle = injectStyle;\n 'use strict';\n\n axe.utils.isHidden = function isHidden(el, recursed) {\n 'use strict';\n\n var node = axe.utils.getNodeFromTree(el);\n\n if (el.nodeType === 9) {\n return false;\n }\n\n if (el.nodeType === 11) {\n el = el.host;\n }\n\n if (node && node._isHidden !== null) {\n return node._isHidden;\n }\n\n var style = window.getComputedStyle(el, null);\n\n if (!style || !el.parentNode || style.getPropertyValue('display') === 'none' || !recursed && style.getPropertyValue('visibility') === 'hidden' || el.getAttribute('aria-hidden') === 'true') {\n return true;\n }\n\n var parent = el.assignedSlot ? el.assignedSlot : el.parentNode;\n var isHidden = axe.utils.isHidden(parent, true);\n\n if (node) {\n node._isHidden = isHidden;\n }\n\n return isHidden;\n };\n\n 'use strict';\n\n var htmlTags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'math', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rb', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'select', 'slot', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'svg', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr'];\n\n axe.utils.isHtmlElement = function isHtmlElement(node) {\n if (node.namespaceURI === 'http://www.w3.org/2000/svg') {\n return false;\n }\n\n return htmlTags.includes(node.nodeName.toLowerCase());\n };\n\n 'use strict';\n\n var possibleShadowRoots = ['article', 'aside', 'blockquote', 'body', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span'];\n\n axe.utils.isShadowRoot = function isShadowRoot(node) {\n if (node.shadowRoot) {\n var nodeName = node.nodeName.toLowerCase();\n\n if (possibleShadowRoots.includes(nodeName) || /^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(nodeName)) {\n return true;\n }\n }\n\n return false;\n };\n\n 'use strict';\n\n axe.utils.isXHTML = function (doc) {\n 'use strict';\n\n if (!doc.createElement) {\n return false;\n }\n\n return doc.createElement('A').localName === 'A';\n };\n\n 'use strict';\n\n function matchesTag(vNode, exp) {\n return vNode.props.nodeType === 1 && (exp.tag === '*' || vNode.props.nodeName === exp.tag);\n }\n\n function matchesClasses(vNode, exp) {\n return !exp.classes || exp.classes.every(function (cl) {\n return vNode.hasClass(cl.value);\n });\n }\n\n function matchesAttributes(vNode, exp) {\n return !exp.attributes || exp.attributes.every(function (att) {\n var nodeAtt = vNode.attr(att.key);\n return nodeAtt !== null && (!att.value || att.test(nodeAtt));\n });\n }\n\n function matchesId(vNode, exp) {\n return !exp.id || vNode.props.id === exp.id;\n }\n\n function matchesPseudos(target, exp) {\n if (!exp.pseudos || exp.pseudos.every(function (pseudo) {\n if (pseudo.name === 'not') {\n return !axe.utils.matchesExpression(target, pseudo.expressions[0]);\n }\n\n throw new Error('the pseudo selector ' + pseudo.name + ' has not yet been implemented');\n })) {\n return true;\n }\n\n return false;\n }\n\n function matchExpression(vNode, expression) {\n return matchesTag(vNode, expression) && matchesClasses(vNode, expression) && matchesAttributes(vNode, expression) && matchesId(vNode, expression) && matchesPseudos(vNode, expression);\n }\n\n var escapeRegExp = function () {\n var from = /(?=[\\-\\[\\]{}()*+?.\\\\\\^$|,#\\s])/g;\n var to = '\\\\';\n return function (string) {\n return string.replace(from, to);\n };\n }();\n\n var reUnescape = /\\\\/g;\n\n function convertAttributes(atts) {\n if (!atts) {\n return;\n }\n\n return atts.map(function (att) {\n var attributeKey = att.name.replace(reUnescape, '');\n var attributeValue = (att.value || '').replace(reUnescape, '');\n var test, regexp;\n\n switch (att.operator) {\n case '^=':\n regexp = new RegExp('^' + escapeRegExp(attributeValue));\n break;\n\n case '$=':\n regexp = new RegExp(escapeRegExp(attributeValue) + '$');\n break;\n\n case '~=':\n regexp = new RegExp('(^|\\\\s)' + escapeRegExp(attributeValue) + '(\\\\s|$)');\n break;\n\n case '|=':\n regexp = new RegExp('^' + escapeRegExp(attributeValue) + '(-|$)');\n break;\n\n case '=':\n test = function test(value) {\n return attributeValue === value;\n };\n\n break;\n\n case '*=':\n test = function test(value) {\n return value && value.includes(attributeValue);\n };\n\n break;\n\n case '!=':\n test = function test(value) {\n return attributeValue !== value;\n };\n\n break;\n\n default:\n test = function test(value) {\n return !!value;\n };\n\n }\n\n if (attributeValue === '' && /^[*$^]=$/.test(att.operator)) {\n test = function test() {\n return false;\n };\n }\n\n if (!test) {\n test = function test(value) {\n return value && regexp.test(value);\n };\n }\n\n return {\n key: attributeKey,\n value: attributeValue,\n test: test\n };\n });\n }\n\n function convertClasses(classes) {\n if (!classes) {\n return;\n }\n\n return classes.map(function (className) {\n className = className.replace(reUnescape, '');\n return {\n value: className,\n regexp: new RegExp('(^|\\\\s)' + escapeRegExp(className) + '(\\\\s|$)')\n };\n });\n }\n\n function convertPseudos(pseudos) {\n if (!pseudos) {\n return;\n }\n\n return pseudos.map(function (p) {\n var expressions;\n\n if (p.name === 'not') {\n expressions = p.value;\n expressions = expressions.selectors ? expressions.selectors : [expressions];\n expressions = convertExpressions(expressions);\n }\n\n return {\n name: p.name,\n expressions: expressions,\n value: p.value\n };\n });\n }\n\n function convertExpressions(expressions) {\n return expressions.map(function (exp) {\n var newExp = [];\n var rule = exp.rule;\n\n while (rule) {\n newExp.push({\n tag: rule.tagName ? rule.tagName.toLowerCase() : '*',\n combinator: rule.nestingOperator ? rule.nestingOperator : ' ',\n id: rule.id,\n attributes: convertAttributes(rule.attrs),\n classes: convertClasses(rule.classNames),\n pseudos: convertPseudos(rule.pseudos)\n });\n rule = rule.rule;\n }\n\n return newExp;\n });\n }\n\n axe.utils.convertSelector = function convertSelector(selector) {\n var expressions = axe.utils.cssParser.parse(selector);\n expressions = expressions.selectors ? expressions.selectors : [expressions];\n return convertExpressions(expressions);\n };\n\n axe.utils.matchesExpression = function matchesExpression(vNode, expressions, matchAnyParent) {\n var exps = [].concat(expressions);\n var expression = exps.pop();\n var matches = matchExpression(vNode, expression);\n\n while (!matches && matchAnyParent && vNode.parent) {\n vNode = vNode.parent;\n matches = matchExpression(vNode, expression);\n }\n\n if (exps.length) {\n if ([' ', '>'].includes(expression.combinator) === false) {\n throw new Error('axe.utils.matchesExpression does not support the combinator: ' + expression.combinator);\n }\n\n matches = matches && axe.utils.matchesExpression(vNode.parent, exps, expression.combinator === ' ');\n }\n\n return matches;\n };\n\n axe.utils.matches = function matches(vNode, selector) {\n var expressions = axe.utils.convertSelector(selector);\n return expressions.some(function (expression) {\n return axe.utils.matchesExpression(vNode, expression);\n });\n };\n\n 'use strict';\n\n axe._memoizedFns = [];\n\n axe.utils.memoize = function (fn) {\n var memoized = axe.imports.memoize(fn);\n\n axe._memoizedFns.push(memoized);\n\n return memoized;\n };\n\n 'use strict';\n\n function pushFrame(resultSet, options, frameElement, frameSelector) {\n 'use strict';\n\n var frameXpath = axe.utils.getXpath(frameElement);\n var frameSpec = {\n element: frameElement,\n selector: frameSelector,\n xpath: frameXpath\n };\n resultSet.forEach(function (res) {\n res.node = axe.utils.DqElement.fromFrame(res.node, options, frameSpec);\n var checks = axe.utils.getAllChecks(res);\n\n if (checks.length) {\n checks.forEach(function (check) {\n check.relatedNodes = check.relatedNodes.map(function (node) {\n return axe.utils.DqElement.fromFrame(node, options, frameSpec);\n });\n });\n }\n });\n }\n\n function spliceNodes(target, to) {\n 'use strict';\n\n var firstFromFrame = to[0].node,\n sorterResult,\n t;\n\n for (var i = 0, l = target.length; i < l; i++) {\n t = target[i].node;\n sorterResult = axe.utils.nodeSorter({\n actualNode: t.element\n }, {\n actualNode: firstFromFrame.element\n });\n\n if (sorterResult > 0 || sorterResult === 0 && firstFromFrame.selector.length < t.selector.length) {\n target.splice.apply(target, [i, 0].concat(to));\n return;\n }\n }\n\n target.push.apply(target, to);\n }\n\n function normalizeResult(result) {\n 'use strict';\n\n if (!result || !result.results) {\n return null;\n }\n\n if (!Array.isArray(result.results)) {\n return [result.results];\n }\n\n if (!result.results.length) {\n return null;\n }\n\n return result.results;\n }\n\n axe.utils.mergeResults = function mergeResults(frameResults, options) {\n 'use strict';\n\n var result = [];\n frameResults.forEach(function (frameResult) {\n var results = normalizeResult(frameResult);\n\n if (!results || !results.length) {\n return;\n }\n\n results.forEach(function (ruleResult) {\n if (ruleResult.nodes && frameResult.frame) {\n pushFrame(ruleResult.nodes, options, frameResult.frameElement, frameResult.frame);\n }\n\n var res = axe.utils.findBy(result, 'id', ruleResult.id);\n\n if (!res) {\n result.push(ruleResult);\n } else {\n if (ruleResult.nodes.length) {\n spliceNodes(res.nodes, ruleResult.nodes);\n }\n }\n });\n });\n return result;\n };\n\n 'use strict';\n\n axe.utils.nodeSorter = function nodeSorter(nodeA, nodeB) {\n nodeA = nodeA.actualNode || nodeA;\n nodeB = nodeB.actualNode || nodeB;\n\n if (nodeA === nodeB) {\n return 0;\n }\n\n if (nodeA.compareDocumentPosition(nodeB) & 4) {\n return -1;\n } else {\n return 1;\n }\n };\n\n 'use strict';\n\n axe.utils.parseCrossOriginStylesheet = function parseCrossOriginStylesheet(url, options, priority, importedUrls, isCrossOrigin) {\n var axiosOptions = {\n method: 'get',\n timeout: axe.constants.preload.timeout,\n url: url\n };\n importedUrls.push(url);\n return axe.imports.axios(axiosOptions).then(function (_ref) {\n var data = _ref.data;\n var result = options.convertDataToStylesheet({\n data: data,\n isCrossOrigin: isCrossOrigin,\n priority: priority,\n root: options.rootNode,\n shadowId: options.shadowId\n });\n return axe.utils.parseStylesheet(result.sheet, options, priority, importedUrls, result.isCrossOrigin);\n });\n };\n\n 'use strict';\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance');\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === '[object Arguments]') {\n return Array.from(iter);\n }\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n }\n\n axe.utils.parseSameOriginStylesheet = function parseSameOriginStylesheet(sheet, options, priority, importedUrls) {\n var isCrossOrigin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var rules = Array.from(sheet.cssRules);\n\n if (!rules) {\n return Promise.resolve();\n }\n\n var cssImportRules = rules.filter(function (r) {\n return r.type === 3;\n });\n\n if (!cssImportRules.length) {\n return Promise.resolve({\n isCrossOrigin: isCrossOrigin,\n priority: priority,\n root: options.rootNode,\n shadowId: options.shadowId,\n sheet: sheet\n });\n }\n\n var cssImportUrlsNotAlreadyImported = cssImportRules.filter(function (rule) {\n return rule.href;\n }).map(function (rule) {\n return rule.href;\n }).filter(function (url) {\n return !importedUrls.includes(url);\n });\n var promises = cssImportUrlsNotAlreadyImported.map(function (importUrl, cssRuleIndex) {\n var newPriority = [].concat(_toConsumableArray(priority), [cssRuleIndex]);\n var isCrossOriginRequest = /^https?:\\/\\/|^\\/\\//i.test(importUrl);\n return axe.utils.parseCrossOriginStylesheet(importUrl, options, newPriority, importedUrls, isCrossOriginRequest);\n });\n var nonImportCSSRules = rules.filter(function (r) {\n return r.type !== 3;\n });\n\n if (!nonImportCSSRules.length) {\n return Promise.all(promises);\n }\n\n promises.push(Promise.resolve(options.convertDataToStylesheet({\n data: nonImportCSSRules.map(function (rule) {\n return rule.cssText;\n }).join(),\n isCrossOrigin: isCrossOrigin,\n priority: priority,\n root: options.rootNode,\n shadowId: options.shadowId\n })));\n return Promise.all(promises);\n };\n\n 'use strict';\n\n axe.utils.parseStylesheet = function parseStylesheet(sheet, options, priority, importedUrls) {\n var isCrossOrigin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var isSameOrigin = isSameOriginStylesheet(sheet);\n\n if (isSameOrigin) {\n return axe.utils.parseSameOriginStylesheet(sheet, options, priority, importedUrls, isCrossOrigin);\n }\n\n return axe.utils.parseCrossOriginStylesheet(sheet.href, options, priority, importedUrls, true);\n };\n\n function isSameOriginStylesheet(sheet) {\n try {\n var rules = sheet.cssRules;\n\n if (!rules && sheet.href) {\n return false;\n }\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n 'use strict';\n\n utils.performanceTimer = function () {\n 'use strict';\n\n function now() {\n if (window.performance && window.performance) {\n return window.performance.now();\n }\n }\n\n var originalTime = null;\n var lastRecordedTime = now();\n return {\n start: function start() {\n this.mark('mark_axe_start');\n },\n end: function end() {\n this.mark('mark_axe_end');\n this.measure('axe', 'mark_axe_start', 'mark_axe_end');\n this.logMeasures('axe');\n },\n auditStart: function auditStart() {\n this.mark('mark_audit_start');\n },\n auditEnd: function auditEnd() {\n this.mark('mark_audit_end');\n this.measure('audit_start_to_end', 'mark_audit_start', 'mark_audit_end');\n this.logMeasures();\n },\n mark: function mark(markName) {\n if (window.performance && window.performance.mark !== undefined) {\n window.performance.mark(markName);\n }\n },\n measure: function measure(measureName, startMark, endMark) {\n if (window.performance && window.performance.measure !== undefined) {\n window.performance.measure(measureName, startMark, endMark);\n }\n },\n logMeasures: function logMeasures(measureName) {\n function log(req) {\n axe.log('Measure ' + req.name + ' took ' + req.duration + 'ms');\n }\n\n if (window.performance && window.performance.getEntriesByType !== undefined) {\n var axeStart = window.performance.getEntriesByName('mark_axe_start')[0];\n var measures = window.performance.getEntriesByType('measure').filter(function (measure) {\n return measure.startTime >= axeStart.startTime;\n });\n\n for (var i = 0; i < measures.length; ++i) {\n var req = measures[i];\n\n if (req.name === measureName) {\n log(req);\n return;\n }\n\n log(req);\n }\n }\n },\n timeElapsed: function timeElapsed() {\n return now() - lastRecordedTime;\n },\n reset: function reset() {\n if (!originalTime) {\n originalTime = now();\n }\n\n lastRecordedTime = now();\n }\n };\n }();\n\n 'use strict';\n\n if (typeof Object.assign !== 'function') {\n (function () {\n Object.assign = function (target) {\n 'use strict';\n\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n })();\n }\n\n if (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, 'find', {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n\n return undefined;\n }\n });\n }\n\n axe.utils.pollyfillElementsFromPoint = function () {\n if (document.elementsFromPoint) {\n return document.elementsFromPoint;\n }\n\n if (document.msElementsFromPoint) {\n return document.msElementsFromPoint;\n }\n\n var usePointer = function () {\n var element = document.createElement('x');\n element.style.cssText = 'pointer-events:auto';\n return element.style.pointerEvents === 'auto';\n }();\n\n var cssProp = usePointer ? 'pointer-events' : 'visibility';\n var cssDisableVal = usePointer ? 'none' : 'hidden';\n var style = document.createElement('style');\n style.innerHTML = usePointer ? '* { pointer-events: all }' : '* { visibility: visible }';\n return function (x, y) {\n var current, i, d;\n var elements = [];\n var previousPointerEvents = [];\n document.head.appendChild(style);\n\n while ((current = document.elementFromPoint(x, y)) && elements.indexOf(current) === -1) {\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue(cssProp),\n priority: current.style.getPropertyPriority(cssProp)\n });\n current.style.setProperty(cssProp, cssDisableVal, 'important');\n }\n\n if (elements.indexOf(document.documentElement) < elements.length - 1) {\n elements.splice(elements.indexOf(document.documentElement), 1);\n elements.push(document.documentElement);\n }\n\n for (i = previousPointerEvents.length; !!(d = previousPointerEvents[--i]);) {\n elements[i].style.setProperty(cssProp, d.value ? d.value : '', d.priority);\n }\n\n document.head.removeChild(style);\n return elements;\n };\n };\n\n if (typeof window.addEventListener === 'function') {\n document.elementsFromPoint = axe.utils.pollyfillElementsFromPoint();\n }\n\n if (!Array.prototype.includes) {\n Object.defineProperty(Array.prototype, 'includes', {\n value: function value(searchElement) {\n 'use strict';\n\n var O = Object(this);\n var len = parseInt(O.length, 10) || 0;\n\n if (len === 0) {\n return false;\n }\n\n var n = parseInt(arguments[1], 10) || 0;\n var k;\n\n if (n >= 0) {\n k = n;\n } else {\n k = len + n;\n\n if (k < 0) {\n k = 0;\n }\n }\n\n var currentElement;\n\n while (k < len) {\n currentElement = O[k];\n\n if (searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement) {\n return true;\n }\n\n k++;\n }\n\n return false;\n }\n });\n }\n\n if (!Array.prototype.some) {\n Object.defineProperty(Array.prototype, 'some', {\n value: function value(fun) {\n 'use strict';\n\n if (this == null) {\n throw new TypeError('Array.prototype.some called on null or undefined');\n }\n\n if (typeof fun !== 'function') {\n throw new TypeError();\n }\n\n var t = Object(this);\n var len = t.length >>> 0;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(thisArg, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n }\n });\n }\n\n if (!Array.from) {\n Object.defineProperty(Array, 'from', {\n value: function () {\n var toStr = Object.prototype.toString;\n\n var isCallable = function isCallable(fn) {\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n };\n\n var toInteger = function toInteger(value) {\n var number = Number(value);\n\n if (isNaN(number)) {\n return 0;\n }\n\n if (number === 0 || !isFinite(number)) {\n return number;\n }\n\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n var toLength = function toLength(value) {\n var len = toInteger(value);\n return Math.min(Math.max(len, 0), maxSafeInteger);\n };\n\n return function from(arrayLike) {\n var C = this;\n var items = Object(arrayLike);\n\n if (arrayLike == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n var T;\n\n if (typeof mapFn !== 'undefined') {\n if (!isCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n if (arguments.length > 2) {\n T = arguments[2];\n }\n }\n\n var len = toLength(items.length);\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n var k = 0;\n var kValue;\n\n while (k < len) {\n kValue = items[k];\n\n if (mapFn) {\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n } else {\n A[k] = kValue;\n }\n\n k += 1;\n }\n\n A.length = len;\n return A;\n };\n }()\n });\n }\n\n if (!String.prototype.includes) {\n String.prototype.includes = function (search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > this.length) {\n return false;\n } else {\n return this.indexOf(search, start) !== -1;\n }\n };\n }\n\n 'use strict';\n\n axe.utils.preloadCssom = function preloadCssom(_ref) {\n var _ref$treeRoot = _ref.treeRoot,\n treeRoot = _ref$treeRoot === void 0 ? axe._tree[0] : _ref$treeRoot;\n var rootNodes = getAllRootNodesInTree(treeRoot);\n\n if (!rootNodes.length) {\n return Promise.resolve();\n }\n\n var dynamicDoc = document.implementation.createHTMLDocument('Dynamic document for loading cssom');\n var convertDataToStylesheet = axe.utils.getStyleSheetFactory(dynamicDoc);\n return getCssomForAllRootNodes(rootNodes, convertDataToStylesheet).then(function (assets) {\n return flattenAssets(assets);\n });\n };\n\n function getAllRootNodesInTree(tree) {\n var ids = [];\n var rootNodes = axe.utils.querySelectorAllFilter(tree, '*', function (node) {\n if (ids.includes(node.shadowId)) {\n return false;\n }\n\n ids.push(node.shadowId);\n return true;\n }).map(function (node) {\n return {\n shadowId: node.shadowId,\n rootNode: axe.utils.getRootNode(node.actualNode)\n };\n });\n return axe.utils.uniqueArray(rootNodes, []);\n }\n\n function getCssomForAllRootNodes(rootNodes, convertDataToStylesheet) {\n var promises = [];\n rootNodes.forEach(function (_ref2, index) {\n var rootNode = _ref2.rootNode,\n shadowId = _ref2.shadowId;\n var sheets = getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet);\n\n if (!sheets) {\n return Promise.all(promises);\n }\n\n var rootIndex = index + 1;\n var parseOptions = {\n rootNode: rootNode,\n shadowId: shadowId,\n convertDataToStylesheet: convertDataToStylesheet,\n rootIndex: rootIndex\n };\n var importedUrls = [];\n var p = Promise.all(sheets.map(function (sheet, sheetIndex) {\n var priority = [rootIndex, sheetIndex];\n return axe.utils.parseStylesheet(sheet, parseOptions, priority, importedUrls);\n }));\n promises.push(p);\n });\n return Promise.all(promises);\n }\n\n function flattenAssets(assets) {\n return assets.reduce(function (acc, val) {\n return Array.isArray(val) ? acc.concat(flattenAssets(val)) : acc.concat(val);\n }, []);\n }\n\n function getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet) {\n var sheets;\n\n if (rootNode.nodeType === 11 && shadowId) {\n sheets = getStylesheetsFromDocumentFragment(rootNode, convertDataToStylesheet);\n } else {\n sheets = getStylesheetsFromDocument(rootNode);\n }\n\n return filterStylesheetsWithSameHref(sheets);\n }\n\n function getStylesheetsFromDocumentFragment(rootNode, convertDataToStylesheet) {\n return Array.from(rootNode.children).filter(filerStyleAndLinkAttributesInDocumentFragment).reduce(function (out, node) {\n var nodeName = node.nodeName.toUpperCase();\n var data = nodeName === 'STYLE' ? node.textContent : node;\n var isLink = nodeName === 'LINK';\n var stylesheet = convertDataToStylesheet({\n data: data,\n isLink: isLink,\n root: rootNode\n });\n out.push(stylesheet.sheet);\n return out;\n }, []);\n }\n\n function getStylesheetsFromDocument(rootNode) {\n return Array.from(rootNode.styleSheets).filter(function (sheet) {\n return filterMediaIsPrint(sheet.media.mediaText);\n });\n }\n\n function filerStyleAndLinkAttributesInDocumentFragment(node) {\n var nodeName = node.nodeName.toUpperCase();\n var linkHref = node.getAttribute('href');\n var linkRel = node.getAttribute('rel');\n var isLink = nodeName === 'LINK' && linkHref && linkRel && node.rel.toUpperCase().includes('STYLESHEET');\n var isStyle = nodeName === 'STYLE';\n return isStyle || isLink && filterMediaIsPrint(node.media);\n }\n\n function filterMediaIsPrint(media) {\n if (!media) {\n return true;\n }\n\n return !media.toUpperCase().includes('PRINT');\n }\n\n function filterStylesheetsWithSameHref(sheets) {\n var hrefs = [];\n return sheets.filter(function (sheet) {\n if (!sheet.href) {\n return true;\n }\n\n if (hrefs.includes(sheet.href)) {\n return false;\n }\n\n hrefs.push(sheet.href);\n return true;\n });\n }\n\n 'use strict';\n\n axe.utils.preloadMedia = function preloadMedia(_ref) {\n var _ref$treeRoot = _ref.treeRoot,\n treeRoot = _ref$treeRoot === void 0 ? axe._tree[0] : _ref$treeRoot;\n var mediaVirtualNodes = axe.utils.querySelectorAllFilter(treeRoot, 'video, audio', function (_ref2) {\n var actualNode = _ref2.actualNode;\n\n if (actualNode.hasAttribute('src')) {\n return !!actualNode.getAttribute('src');\n }\n\n var sourceWithSrc = Array.from(actualNode.getElementsByTagName('source')).filter(function (source) {\n return !!source.getAttribute('src');\n });\n\n if (sourceWithSrc.length <= 0) {\n return false;\n }\n\n return true;\n });\n return Promise.all(mediaVirtualNodes.map(function (_ref3) {\n var actualNode = _ref3.actualNode;\n return isMediaElementReady(actualNode);\n }));\n };\n\n function isMediaElementReady(elm) {\n return new Promise(function (resolve) {\n if (elm.readyState > 0) {\n resolve(elm);\n }\n\n function onMediaReady() {\n elm.removeEventListener('loadedmetadata', onMediaReady);\n resolve(elm);\n }\n\n elm.addEventListener('loadedmetadata', onMediaReady);\n });\n }\n\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function isValidPreloadObject(preload) {\n return _typeof(preload) === 'object' && Array.isArray(preload.assets);\n }\n\n axe.utils.shouldPreload = function shouldPreload(options) {\n if (!options || options.preload === undefined || options.preload === null) {\n return true;\n }\n\n if (typeof options.preload === 'boolean') {\n return options.preload;\n }\n\n return isValidPreloadObject(options.preload);\n };\n\n axe.utils.getPreloadConfig = function getPreloadConfig(options) {\n var _axe$constants$preloa = axe.constants.preload,\n assets = _axe$constants$preloa.assets,\n timeout = _axe$constants$preloa.timeout;\n var config = {\n assets: assets,\n timeout: timeout\n };\n\n if (!options.preload) {\n return config;\n }\n\n if (typeof options.preload === 'boolean') {\n return config;\n }\n\n var areRequestedAssetsValid = options.preload.assets.every(function (a) {\n return assets.includes(a.toLowerCase());\n });\n\n if (!areRequestedAssetsValid) {\n throw new Error('Requested assets, not supported. ' + 'Supported assets are: '.concat(assets.join(', '), '.'));\n }\n\n config.assets = axe.utils.uniqueArray(options.preload.assets.map(function (a) {\n return a.toLowerCase();\n }), []);\n\n if (options.preload.timeout && typeof options.preload.timeout === 'number' && !isNaN(options.preload.timeout)) {\n config.timeout = options.preload.timeout;\n }\n\n return config;\n };\n\n axe.utils.preload = function preload(options) {\n var preloadFunctionsMap = {\n cssom: axe.utils.preloadCssom,\n media: axe.utils.preloadMedia\n };\n var shouldPreload = axe.utils.shouldPreload(options);\n\n if (!shouldPreload) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n var _axe$utils$getPreload = axe.utils.getPreloadConfig(options),\n assets = _axe$utils$getPreload.assets,\n timeout = _axe$utils$getPreload.timeout;\n\n var preloadTimeout = setTimeout(function () {\n return reject(new Error('Preload assets timed out.'));\n }, timeout);\n Promise.all(assets.map(function (asset) {\n return preloadFunctionsMap[asset](options).then(function (results) {\n return _defineProperty({}, asset, results);\n });\n })).then(function (results) {\n var preloadAssets = results.reduce(function (out, result) {\n return _extends({}, out, {}, result);\n }, {});\n clearTimeout(preloadTimeout);\n resolve(preloadAssets);\n })['catch'](function (err) {\n clearTimeout(preloadTimeout);\n reject(err);\n });\n });\n };\n\n 'use strict';\n\n var dataRegex = /\\$\\{\\s?data\\s?\\}/g;\n\n function substitute(str, data) {\n if (typeof data === 'string') {\n return str.replace(dataRegex, data);\n }\n\n for (var prop in data) {\n if (data.hasOwnProperty(prop)) {\n var regex = new RegExp('\\\\${\\\\s?data\\\\.' + prop + '\\\\s?}', 'g');\n str = str.replace(regex, data[prop]);\n }\n }\n\n return str;\n }\n\n axe.utils.processMessage = function processMessage(message, data) {\n if (!message) {\n return;\n }\n\n if (Array.isArray(data)) {\n data.values = data.join(', ');\n\n if (typeof message.singular === 'string' && typeof message.plural === 'string') {\n var _str = data.length === 1 ? message.singular : message.plural;\n\n return substitute(_str, data);\n }\n\n return substitute(message, data);\n }\n\n if (typeof message === 'string') {\n return substitute(message, data);\n }\n\n if (typeof data === 'string') {\n var _str2 = message[data];\n return substitute(_str2, data);\n }\n\n var str = message['default'] || helpers.incompleteFallbackMessage();\n\n if (data && data.messageKey && message[data.messageKey]) {\n str = message[data.messageKey];\n }\n\n return processMessage(str, data);\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function getIncompleteReason(checkData, messages) {\n function getDefaultMsg(messages) {\n if (messages.incomplete && messages.incomplete['default']) {\n return messages.incomplete['default'];\n } else {\n return helpers.incompleteFallbackMessage();\n }\n }\n\n if (checkData && checkData.missingData) {\n try {\n var msg = messages.incomplete[checkData.missingData[0].reason];\n\n if (!msg) {\n throw new Error();\n }\n\n return msg;\n } catch (e) {\n if (typeof checkData.missingData === 'string') {\n return messages.incomplete[checkData.missingData];\n } else {\n return getDefaultMsg(messages);\n }\n }\n } else if (checkData && checkData.messageKey) {\n return messages.incomplete[checkData.messageKey];\n } else {\n return getDefaultMsg(messages);\n }\n }\n\n function extender(checksData, shouldBeTrue) {\n 'use strict';\n\n return function (check) {\n var sourceData = checksData[check.id] || {};\n var messages = sourceData.messages || {};\n var data = Object.assign({}, sourceData);\n delete data.messages;\n\n if (check.result === undefined) {\n if (_typeof(messages.incomplete) === 'object' && !Array.isArray(check.data)) {\n data.message = getIncompleteReason(check.data, messages);\n }\n\n if (!data.message) {\n data.message = messages.incomplete;\n }\n } else {\n data.message = check.result === shouldBeTrue ? messages.pass : messages.fail;\n }\n\n if (typeof data.message !== 'function') {\n data.message = axe.utils.processMessage(data.message, check.data);\n }\n\n axe.utils.extendMetaData(check, data);\n };\n }\n\n axe.utils.publishMetaData = function (ruleResult) {\n 'use strict';\n\n var checksData = axe._audit.data.checks || {};\n var rulesData = axe._audit.data.rules || {};\n var rule = axe.utils.findBy(axe._audit.rules, 'id', ruleResult.id) || {};\n ruleResult.tags = axe.utils.clone(rule.tags || []);\n var shouldBeTrue = extender(checksData, true);\n var shouldBeFalse = extender(checksData, false);\n ruleResult.nodes.forEach(function (detail) {\n detail.any.forEach(shouldBeTrue);\n detail.all.forEach(shouldBeTrue);\n detail.none.forEach(shouldBeFalse);\n });\n axe.utils.extendMetaData(ruleResult, axe.utils.clone(rulesData[ruleResult.id] || {}));\n };\n\n 'use strict';\n\n function createLocalVariables(vNodes, anyLevel, thisLevel, parentShadowId) {\n var retVal = {\n vNodes: vNodes.slice(),\n anyLevel: anyLevel,\n thisLevel: thisLevel,\n parentShadowId: parentShadowId\n };\n retVal.vNodes.reverse();\n return retVal;\n }\n\n function matchExpressions(domTree, expressions, filter) {\n var stack = [];\n var vNodes = Array.isArray(domTree) ? domTree : [domTree];\n var currentLevel = createLocalVariables(vNodes, expressions, [], domTree[0].shadowId);\n var result = [];\n\n while (currentLevel.vNodes.length) {\n var vNode = currentLevel.vNodes.pop();\n var childOnly = [];\n var childAny = [];\n var combined = currentLevel.anyLevel.slice().concat(currentLevel.thisLevel);\n var added = false;\n\n for (var i = 0; i < combined.length; i++) {\n var exp = combined[i];\n\n if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && axe.utils.matchesExpression(vNode, exp[0])) {\n if (exp.length === 1) {\n if (!added && (!filter || filter(vNode))) {\n result.push(vNode);\n added = true;\n }\n } else {\n var rest = exp.slice(1);\n\n if ([' ', '>'].includes(rest[0].combinator) === false) {\n throw new Error('axe.utils.querySelectorAll does not support the combinator: ' + exp[1].combinator);\n }\n\n if (rest[0].combinator === '>') {\n childOnly.push(rest);\n } else {\n childAny.push(rest);\n }\n }\n }\n\n if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && currentLevel.anyLevel.includes(exp)) {\n childAny.push(exp);\n }\n }\n\n if (vNode.children && vNode.children.length) {\n stack.push(currentLevel);\n currentLevel = createLocalVariables(vNode.children, childAny, childOnly, vNode.shadowId);\n }\n\n while (!currentLevel.vNodes.length && stack.length) {\n currentLevel = stack.pop();\n }\n }\n\n return result;\n }\n\n axe.utils.querySelectorAll = function (domTree, selector) {\n return axe.utils.querySelectorAllFilter(domTree, selector);\n };\n\n axe.utils.querySelectorAllFilter = function (domTree, selector, filter) {\n domTree = Array.isArray(domTree) ? domTree : [domTree];\n var expressions = axe.utils.convertSelector(selector);\n return matchExpressions(domTree, expressions, filter);\n };\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n (function () {\n 'use strict';\n\n function noop() {}\n\n function funcGuard(f) {\n if (typeof f !== 'function') {\n throw new TypeError('Queue methods require functions as arguments');\n }\n }\n\n function queue() {\n var tasks = [];\n var started = 0;\n var remaining = 0;\n var completeQueue = noop;\n var complete = false;\n var err;\n\n var defaultFail = function defaultFail(e) {\n err = e;\n setTimeout(function () {\n if (err !== undefined && err !== null) {\n axe.log('Uncaught error (of queue)', err);\n }\n }, 1);\n };\n\n var failed = defaultFail;\n\n function createResolve(i) {\n return function (r) {\n tasks[i] = r;\n remaining -= 1;\n\n if (!remaining && completeQueue !== noop) {\n complete = true;\n completeQueue(tasks);\n }\n };\n }\n\n function abort(msg) {\n completeQueue = noop;\n failed(msg);\n return tasks;\n }\n\n function pop() {\n var length = tasks.length;\n\n for (; started < length; started++) {\n var task = tasks[started];\n\n try {\n task.call(null, createResolve(started), abort);\n } catch (e) {\n abort(e);\n }\n }\n }\n\n var q = {\n defer: function defer(fn) {\n if (_typeof(fn) === 'object' && fn.then && fn['catch']) {\n var defer = fn;\n\n fn = function fn(resolve, reject) {\n defer.then(resolve)['catch'](reject);\n };\n }\n\n funcGuard(fn);\n\n if (err !== undefined) {\n return;\n } else if (complete) {\n throw new Error('Queue already completed');\n }\n\n tasks.push(fn);\n ++remaining;\n pop();\n return q;\n },\n then: function then(fn) {\n funcGuard(fn);\n\n if (completeQueue !== noop) {\n throw new Error('queue `then` already set');\n }\n\n if (!err) {\n completeQueue = fn;\n\n if (!remaining) {\n complete = true;\n completeQueue(tasks);\n }\n }\n\n return q;\n },\n catch: function _catch(fn) {\n funcGuard(fn);\n\n if (failed !== defaultFail) {\n throw new Error('queue `catch` already set');\n }\n\n if (!err) {\n failed = fn;\n } else {\n fn(err);\n err = null;\n }\n\n return q;\n },\n abort: abort\n };\n return q;\n }\n\n axe.utils.queue = queue;\n })();\n\n 'use strict';\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n (function (exports) {\n 'use strict';\n\n var messages = {},\n subscribers = {},\n errorTypes = Object.freeze(['EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError']);\n\n function _getSource() {\n var application = 'axeAPI',\n version = '',\n src;\n\n if (typeof axe !== 'undefined' && axe._audit && axe._audit.application) {\n application = axe._audit.application;\n }\n\n if (typeof axe !== 'undefined') {\n version = axe.version;\n }\n\n src = application + '.' + version;\n return src;\n }\n\n function verify(postedMessage) {\n if (_typeof(postedMessage) === 'object' && typeof postedMessage.uuid === 'string' && postedMessage._respondable === true) {\n var messageSource = _getSource();\n\n return postedMessage._source === messageSource || postedMessage._source === 'axeAPI.x.y.z' || messageSource === 'axeAPI.x.y.z';\n }\n\n return false;\n }\n\n function post(win, topic, message, uuid, keepalive, callback) {\n var error;\n\n if (message instanceof Error) {\n error = {\n name: message.name,\n message: message.message,\n stack: message.stack\n };\n message = undefined;\n }\n\n var data = {\n uuid: uuid,\n topic: topic,\n message: message,\n error: error,\n _respondable: true,\n _source: _getSource(),\n _axeuuid: axe._uuid,\n _keepalive: keepalive\n };\n\n var axeRespondables = axe._cache.get('axeRespondables');\n\n if (!axeRespondables) {\n axeRespondables = {};\n\n axe._cache.set('axeRespondables', axeRespondables);\n }\n\n axeRespondables[uuid] = true;\n\n if (typeof callback === 'function') {\n messages[uuid] = callback;\n }\n\n win.postMessage(JSON.stringify(data), '*');\n }\n\n function respondable(win, topic, message, keepalive, callback) {\n var id = uuid.v1();\n post(win, topic, message, id, keepalive, callback);\n }\n\n respondable.subscribe = function (topic, callback) {\n subscribers[topic] = callback;\n };\n\n respondable.isInFrame = function (win) {\n win = win || window;\n return !!win.frameElement;\n };\n\n function createResponder(source, topic, uuid) {\n return function (message, keepalive, callback) {\n post(source, topic, message, uuid, keepalive, callback);\n };\n }\n\n function publish(source, data, keepalive) {\n var topic = data.topic;\n var subscriber = subscribers[topic];\n\n if (subscriber) {\n var responder = createResponder(source, null, data.uuid);\n subscriber(data.message, keepalive, responder);\n }\n }\n\n function buildErrorObject(error) {\n var msg = error.message || 'Unknown error occurred';\n var errorName = errorTypes.includes(error.name) ? error.name : 'Error';\n var ErrConstructor = window[errorName] || Error;\n\n if (error.stack) {\n msg += '\\n' + error.stack.replace(error.message, '');\n }\n\n return new ErrConstructor(msg);\n }\n\n function parseMessage(dataString) {\n var data;\n\n if (typeof dataString !== 'string') {\n return;\n }\n\n try {\n data = JSON.parse(dataString);\n } catch (ex) {}\n\n if (!verify(data)) {\n return;\n }\n\n if (_typeof(data.error) === 'object') {\n data.error = buildErrorObject(data.error);\n } else {\n data.error = undefined;\n }\n\n return data;\n }\n\n if (typeof window.addEventListener === 'function') {\n window.addEventListener('message', function (e) {\n var data = parseMessage(e.data);\n\n if (!data || !data._axeuuid) {\n return;\n }\n\n var uuid = data.uuid;\n var axeRespondables = axe._cache.get('axeRespondables') || {};\n\n if (axeRespondables[uuid] && data._axeuuid === axe._uuid) {\n return;\n }\n\n var keepalive = data._keepalive;\n var callback = messages[uuid];\n\n if (callback) {\n var result = data.error || data.message;\n var responder = createResponder(e.source, data.topic, uuid);\n callback(result, keepalive, responder);\n\n if (!keepalive) {\n delete messages[uuid];\n }\n }\n\n if (!data.error) {\n try {\n publish(e.source, data, keepalive);\n } catch (err) {\n post(e.source, null, err, uuid, false);\n }\n }\n }, false);\n }\n\n exports.respondable = respondable;\n })(utils);\n\n 'use strict';\n\n function matchTags(rule, runOnly) {\n 'use strict';\n\n var include, exclude, matching;\n var defaultExclude = axe._audit && axe._audit.tagExclude ? axe._audit.tagExclude : [];\n\n if (runOnly.hasOwnProperty('include') || runOnly.hasOwnProperty('exclude')) {\n include = runOnly.include || [];\n include = Array.isArray(include) ? include : [include];\n exclude = runOnly.exclude || [];\n exclude = Array.isArray(exclude) ? exclude : [exclude];\n exclude = exclude.concat(defaultExclude.filter(function (tag) {\n return include.indexOf(tag) === -1;\n }));\n } else {\n include = Array.isArray(runOnly) ? runOnly : [runOnly];\n exclude = defaultExclude.filter(function (tag) {\n return include.indexOf(tag) === -1;\n });\n }\n\n matching = include.some(function (tag) {\n return rule.tags.indexOf(tag) !== -1;\n });\n\n if (matching || include.length === 0 && rule.enabled !== false) {\n return exclude.every(function (tag) {\n return rule.tags.indexOf(tag) === -1;\n });\n } else {\n return false;\n }\n }\n\n axe.utils.ruleShouldRun = function (rule, context, options) {\n 'use strict';\n\n var runOnly = options.runOnly || {};\n var ruleOptions = (options.rules || {})[rule.id];\n\n if (rule.pageLevel && !context.page) {\n return false;\n } else if (runOnly.type === 'rule') {\n return runOnly.values.indexOf(rule.id) !== -1;\n } else if (ruleOptions && typeof ruleOptions.enabled === 'boolean') {\n return ruleOptions.enabled;\n } else if (runOnly.type === 'tag' && runOnly.values) {\n return matchTags(rule, runOnly.values);\n } else {\n return matchTags(rule, []);\n }\n };\n\n 'use strict';\n\n function setScroll(elm, top, left) {\n if (elm === window) {\n return elm.scroll(left, top);\n } else {\n elm.scrollTop = top;\n elm.scrollLeft = left;\n }\n }\n\n function getElmScrollRecursive(root) {\n return Array.from(root.children || root.childNodes || []).reduce(function (scrolls, elm) {\n var scroll = axe.utils.getScroll(elm);\n\n if (scroll) {\n scrolls.push(scroll);\n }\n\n return scrolls.concat(getElmScrollRecursive(elm));\n }, []);\n }\n\n axe.utils.getScrollState = function getScrollState() {\n var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n var root = win.document.documentElement;\n var windowScroll = [win.pageXOffset !== undefined ? {\n elm: win,\n top: win.pageYOffset,\n left: win.pageXOffset\n } : {\n elm: root,\n top: root.scrollTop,\n left: root.scrollLeft\n }];\n return windowScroll.concat(getElmScrollRecursive(document.body));\n };\n\n axe.utils.setScrollState = function setScrollState(scrollState) {\n scrollState.forEach(function (_ref) {\n var elm = _ref.elm,\n top = _ref.top,\n left = _ref.left;\n return setScroll(elm, top, left);\n });\n };\n\n 'use strict';\n\n function getDeepest(collection) {\n 'use strict';\n\n return collection.sort(function (a, b) {\n if (axe.utils.contains(a, b)) {\n return 1;\n }\n\n return -1;\n })[0];\n }\n\n function isNodeInContext(node, context) {\n 'use strict';\n\n var include = context.include && getDeepest(context.include.filter(function (candidate) {\n return axe.utils.contains(candidate, node);\n }));\n var exclude = context.exclude && getDeepest(context.exclude.filter(function (candidate) {\n return axe.utils.contains(candidate, node);\n }));\n\n if (!exclude && include || exclude && axe.utils.contains(exclude, include)) {\n return true;\n }\n\n return false;\n }\n\n function pushNode(result, nodes) {\n 'use strict';\n\n var temp;\n\n if (result.length === 0) {\n return nodes;\n }\n\n if (result.length < nodes.length) {\n temp = result;\n result = nodes;\n nodes = temp;\n }\n\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (!result.includes(nodes[i])) {\n result.push(nodes[i]);\n }\n }\n\n return result;\n }\n\n function reduceIncludes(includes) {\n return includes.reduce(function (res, el) {\n if (!res.length || !axe.utils.contains(res[res.length - 1], el)) {\n res.push(el);\n }\n\n return res;\n }, []);\n }\n\n axe.utils.select = function select(selector, context) {\n 'use strict';\n\n var result = [];\n var candidate;\n\n if (axe._selectCache) {\n for (var j = 0, l = axe._selectCache.length; j < l; j++) {\n var item = axe._selectCache[j];\n\n if (item.selector === selector) {\n return item.result;\n }\n }\n }\n\n var curried = function (context) {\n return function (node) {\n return isNodeInContext(node, context);\n };\n }(context);\n\n var reducedIncludes = reduceIncludes(context.include);\n\n for (var i = 0; i < reducedIncludes.length; i++) {\n candidate = reducedIncludes[i];\n result = pushNode(result, axe.utils.querySelectorAllFilter(candidate, selector, curried));\n }\n\n if (axe._selectCache) {\n axe._selectCache.push({\n selector: selector,\n result: result\n });\n }\n\n return result;\n };\n\n 'use strict';\n\n axe.utils.toArray = function (thing) {\n 'use strict';\n\n return Array.prototype.slice.call(thing);\n };\n\n axe.utils.uniqueArray = function (arr1, arr2) {\n return arr1.concat(arr2).filter(function (elem, pos, arr) {\n return arr.indexOf(elem) === pos;\n });\n };\n\n 'use strict';\n\n axe.utils.tokenList = function (str) {\n 'use strict';\n\n return str.trim().replace(/\\s{2,}/g, ' ').split(' ');\n };\n\n 'use strict';\n\n var uuid;\n\n (function (_global) {\n var _rng;\n\n var _crypto = _global.crypto || _global.msCrypto;\n\n if (!_rng && _crypto && _crypto.getRandomValues) {\n var _rnds8 = new Uint8Array(16);\n\n _rng = function whatwgRNG() {\n _crypto.getRandomValues(_rnds8);\n\n return _rnds8;\n };\n }\n\n if (!_rng) {\n var _rnds = new Array(16);\n\n _rng = function _rng() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 3) === 0) {\n r = Math.random() * 4294967296;\n }\n\n _rnds[i] = r >>> ((i & 3) << 3) & 255;\n }\n\n return _rnds;\n };\n }\n\n var BufferClass = typeof _global.Buffer == 'function' ? _global.Buffer : Array;\n var _byteToHex = [];\n var _hexToByte = {};\n\n for (var i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 256).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n }\n\n function parse(s, buf, offset) {\n var i = buf && offset || 0,\n ii = 0;\n buf = buf || [];\n s.toLowerCase().replace(/[0-9a-f]{2}/g, function (oct) {\n if (ii < 16) {\n buf[i + ii++] = _hexToByte[oct];\n }\n });\n\n while (ii < 16) {\n buf[i + ii++] = 0;\n }\n\n return buf;\n }\n\n function unparse(buf, offset) {\n var i = offset || 0,\n bth = _byteToHex;\n return bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]];\n }\n\n var _seedBytes = _rng();\n\n var _nodeId = [_seedBytes[0] | 1, _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]];\n\n var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 16383;\n\n var _lastMSecs = 0,\n _lastNSecs = 0;\n\n function v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var clockseq = options.clockseq != null ? options.clockseq : _clockseq;\n var msecs = options.msecs != null ? options.msecs : new Date().getTime();\n var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;\n\n if (dt < 0 && options.clockseq == null) {\n clockseq = clockseq + 1 & 16383;\n }\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {\n nsecs = 0;\n }\n\n if (nsecs >= 1e4) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n msecs += 122192928e5;\n var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;\n b[i++] = tl >>> 24 & 255;\n b[i++] = tl >>> 16 & 255;\n b[i++] = tl >>> 8 & 255;\n b[i++] = tl & 255;\n var tmh = msecs / 4294967296 * 1e4 & 268435455;\n b[i++] = tmh >>> 8 & 255;\n b[i++] = tmh & 255;\n b[i++] = tmh >>> 24 & 15 | 16;\n b[i++] = tmh >>> 16 & 255;\n b[i++] = clockseq >>> 8 | 128;\n b[i++] = clockseq & 255;\n var node = options.node || _nodeId;\n\n for (var n = 0; n < 6; n++) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : unparse(b);\n }\n\n function v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options == 'binary' ? new BufferClass(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng)();\n\n rnds[6] = rnds[6] & 15 | 64;\n rnds[8] = rnds[8] & 63 | 128;\n\n if (buf) {\n for (var ii = 0; ii < 16; ii++) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || unparse(rnds);\n }\n\n uuid = v4;\n uuid.v1 = v1;\n uuid.v4 = v4;\n uuid.parse = parse;\n uuid.unparse = unparse;\n uuid.BufferClass = BufferClass;\n axe._uuid = v1();\n })(window);\n\n 'use strict';\n\n axe.utils.validInputTypes = function validInputTypes() {\n 'use strict';\n\n return ['hidden', 'text', 'search', 'tel', 'url', 'email', 'password', 'date', 'month', 'week', 'time', 'datetime-local', 'number', 'range', 'color', 'checkbox', 'radio', 'file', 'submit', 'image', 'reset', 'button'];\n };\n\n 'use strict';\n\n var langs = ['aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'in', 'io', 'is', 'it', 'iu', 'iw', 'ja', 'ji', 'jv', 'jw', 'ka', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw', 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mo', 'mr', 'ms', 'mt', 'my', 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv', 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu', 'aaa', 'aab', 'aac', 'aad', 'aae', 'aaf', 'aag', 'aah', 'aai', 'aak', 'aal', 'aam', 'aan', 'aao', 'aap', 'aaq', 'aas', 'aat', 'aau', 'aav', 'aaw', 'aax', 'aaz', 'aba', 'abb', 'abc', 'abd', 'abe', 'abf', 'abg', 'abh', 'abi', 'abj', 'abl', 'abm', 'abn', 'abo', 'abp', 'abq', 'abr', 'abs', 'abt', 'abu', 'abv', 'abw', 'abx', 'aby', 'abz', 'aca', 'acb', 'acd', 'ace', 'acf', 'ach', 'aci', 'ack', 'acl', 'acm', 'acn', 'acp', 'acq', 'acr', 'acs', 'act', 'acu', 'acv', 'acw', 'acx', 'acy', 'acz', 'ada', 'adb', 'add', 'ade', 'adf', 'adg', 'adh', 'adi', 'adj', 'adl', 'adn', 'ado', 'adp', 'adq', 'adr', 'ads', 'adt', 'adu', 'adw', 'adx', 'ady', 'adz', 'aea', 'aeb', 'aec', 'aed', 'aee', 'aek', 'ael', 'aem', 'aen', 'aeq', 'aer', 'aes', 'aeu', 'aew', 'aey', 'aez', 'afa', 'afb', 'afd', 'afe', 'afg', 'afh', 'afi', 'afk', 'afn', 'afo', 'afp', 'afs', 'aft', 'afu', 'afz', 'aga', 'agb', 'agc', 'agd', 'age', 'agf', 'agg', 'agh', 'agi', 'agj', 'agk', 'agl', 'agm', 'agn', 'ago', 'agp', 'agq', 'agr', 'ags', 'agt', 'agu', 'agv', 'agw', 'agx', 'agy', 'agz', 'aha', 'ahb', 'ahg', 'ahh', 'ahi', 'ahk', 'ahl', 'ahm', 'ahn', 'aho', 'ahp', 'ahr', 'ahs', 'aht', 'aia', 'aib', 'aic', 'aid', 'aie', 'aif', 'aig', 'aih', 'aii', 'aij', 'aik', 'ail', 'aim', 'ain', 'aio', 'aip', 'aiq', 'air', 'ais', 'ait', 'aiw', 'aix', 'aiy', 'aja', 'ajg', 'aji', 'ajn', 'ajp', 'ajt', 'aju', 'ajw', 'ajz', 'akb', 'akc', 'akd', 'ake', 'akf', 'akg', 'akh', 'aki', 'akj', 'akk', 'akl', 'akm', 'ako', 'akp', 'akq', 'akr', 'aks', 'akt', 'aku', 'akv', 'akw', 'akx', 'aky', 'akz', 'ala', 'alc', 'ald', 'ale', 'alf', 'alg', 'alh', 'ali', 'alj', 'alk', 'all', 'alm', 'aln', 'alo', 'alp', 'alq', 'alr', 'als', 'alt', 'alu', 'alv', 'alw', 'alx', 'aly', 'alz', 'ama', 'amb', 'amc', 'ame', 'amf', 'amg', 'ami', 'amj', 'amk', 'aml', 'amm', 'amn', 'amo', 'amp', 'amq', 'amr', 'ams', 'amt', 'amu', 'amv', 'amw', 'amx', 'amy', 'amz', 'ana', 'anb', 'anc', 'and', 'ane', 'anf', 'ang', 'anh', 'ani', 'anj', 'ank', 'anl', 'anm', 'ann', 'ano', 'anp', 'anq', 'anr', 'ans', 'ant', 'anu', 'anv', 'anw', 'anx', 'any', 'anz', 'aoa', 'aob', 'aoc', 'aod', 'aoe', 'aof', 'aog', 'aoh', 'aoi', 'aoj', 'aok', 'aol', 'aom', 'aon', 'aor', 'aos', 'aot', 'aou', 'aox', 'aoz', 'apa', 'apb', 'apc', 'apd', 'ape', 'apf', 'apg', 'aph', 'api', 'apj', 'apk', 'apl', 'apm', 'apn', 'apo', 'app', 'apq', 'apr', 'aps', 'apt', 'apu', 'apv', 'apw', 'apx', 'apy', 'apz', 'aqa', 'aqc', 'aqd', 'aqg', 'aql', 'aqm', 'aqn', 'aqp', 'aqr', 'aqt', 'aqz', 'arb', 'arc', 'ard', 'are', 'arh', 'ari', 'arj', 'ark', 'arl', 'arn', 'aro', 'arp', 'arq', 'arr', 'ars', 'art', 'aru', 'arv', 'arw', 'arx', 'ary', 'arz', 'asa', 'asb', 'asc', 'asd', 'ase', 'asf', 'asg', 'ash', 'asi', 'asj', 'ask', 'asl', 'asn', 'aso', 'asp', 'asq', 'asr', 'ass', 'ast', 'asu', 'asv', 'asw', 'asx', 'asy', 'asz', 'ata', 'atb', 'atc', 'atd', 'ate', 'atg', 'ath', 'ati', 'atj', 'atk', 'atl', 'atm', 'atn', 'ato', 'atp', 'atq', 'atr', 'ats', 'att', 'atu', 'atv', 'atw', 'atx', 'aty', 'atz', 'aua', 'aub', 'auc', 'aud', 'aue', 'auf', 'aug', 'auh', 'aui', 'auj', 'auk', 'aul', 'aum', 'aun', 'auo', 'aup', 'auq', 'aur', 'aus', 'aut', 'auu', 'auw', 'aux', 'auy', 'auz', 'avb', 'avd', 'avi', 'avk', 'avl', 'avm', 'avn', 'avo', 'avs', 'avt', 'avu', 'avv', 'awa', 'awb', 'awc', 'awd', 'awe', 'awg', 'awh', 'awi', 'awk', 'awm', 'awn', 'awo', 'awr', 'aws', 'awt', 'awu', 'awv', 'aww', 'awx', 'awy', 'axb', 'axe', 'axg', 'axk', 'axl', 'axm', 'axx', 'aya', 'ayb', 'ayc', 'ayd', 'aye', 'ayg', 'ayh', 'ayi', 'ayk', 'ayl', 'ayn', 'ayo', 'ayp', 'ayq', 'ayr', 'ays', 'ayt', 'ayu', 'ayx', 'ayy', 'ayz', 'aza', 'azb', 'azc', 'azd', 'azg', 'azj', 'azm', 'azn', 'azo', 'azt', 'azz', 'baa', 'bab', 'bac', 'bad', 'bae', 'baf', 'bag', 'bah', 'bai', 'baj', 'bal', 'ban', 'bao', 'bap', 'bar', 'bas', 'bat', 'bau', 'bav', 'baw', 'bax', 'bay', 'baz', 'bba', 'bbb', 'bbc', 'bbd', 'bbe', 'bbf', 'bbg', 'bbh', 'bbi', 'bbj', 'bbk', 'bbl', 'bbm', 'bbn', 'bbo', 'bbp', 'bbq', 'bbr', 'bbs', 'bbt', 'bbu', 'bbv', 'bbw', 'bbx', 'bby', 'bbz', 'bca', 'bcb', 'bcc', 'bcd', 'bce', 'bcf', 'bcg', 'bch', 'bci', 'bcj', 'bck', 'bcl', 'bcm', 'bcn', 'bco', 'bcp', 'bcq', 'bcr', 'bcs', 'bct', 'bcu', 'bcv', 'bcw', 'bcy', 'bcz', 'bda', 'bdb', 'bdc', 'bdd', 'bde', 'bdf', 'bdg', 'bdh', 'bdi', 'bdj', 'bdk', 'bdl', 'bdm', 'bdn', 'bdo', 'bdp', 'bdq', 'bdr', 'bds', 'bdt', 'bdu', 'bdv', 'bdw', 'bdx', 'bdy', 'bdz', 'bea', 'beb', 'bec', 'bed', 'bee', 'bef', 'beg', 'beh', 'bei', 'bej', 'bek', 'bem', 'beo', 'bep', 'beq', 'ber', 'bes', 'bet', 'beu', 'bev', 'bew', 'bex', 'bey', 'bez', 'bfa', 'bfb', 'bfc', 'bfd', 'bfe', 'bff', 'bfg', 'bfh', 'bfi', 'bfj', 'bfk', 'bfl', 'bfm', 'bfn', 'bfo', 'bfp', 'bfq', 'bfr', 'bfs', 'bft', 'bfu', 'bfw', 'bfx', 'bfy', 'bfz', 'bga', 'bgb', 'bgc', 'bgd', 'bge', 'bgf', 'bgg', 'bgi', 'bgj', 'bgk', 'bgl', 'bgm', 'bgn', 'bgo', 'bgp', 'bgq', 'bgr', 'bgs', 'bgt', 'bgu', 'bgv', 'bgw', 'bgx', 'bgy', 'bgz', 'bha', 'bhb', 'bhc', 'bhd', 'bhe', 'bhf', 'bhg', 'bhh', 'bhi', 'bhj', 'bhk', 'bhl', 'bhm', 'bhn', 'bho', 'bhp', 'bhq', 'bhr', 'bhs', 'bht', 'bhu', 'bhv', 'bhw', 'bhx', 'bhy', 'bhz', 'bia', 'bib', 'bic', 'bid', 'bie', 'bif', 'big', 'bij', 'bik', 'bil', 'bim', 'bin', 'bio', 'bip', 'biq', 'bir', 'bit', 'biu', 'biv', 'biw', 'bix', 'biy', 'biz', 'bja', 'bjb', 'bjc', 'bjd', 'bje', 'bjf', 'bjg', 'bjh', 'bji', 'bjj', 'bjk', 'bjl', 'bjm', 'bjn', 'bjo', 'bjp', 'bjq', 'bjr', 'bjs', 'bjt', 'bju', 'bjv', 'bjw', 'bjx', 'bjy', 'bjz', 'bka', 'bkb', 'bkc', 'bkd', 'bkf', 'bkg', 'bkh', 'bki', 'bkj', 'bkk', 'bkl', 'bkm', 'bkn', 'bko', 'bkp', 'bkq', 'bkr', 'bks', 'bkt', 'bku', 'bkv', 'bkw', 'bkx', 'bky', 'bkz', 'bla', 'blb', 'blc', 'bld', 'ble', 'blf', 'blg', 'blh', 'bli', 'blj', 'blk', 'bll', 'blm', 'bln', 'blo', 'blp', 'blq', 'blr', 'bls', 'blt', 'blv', 'blw', 'blx', 'bly', 'blz', 'bma', 'bmb', 'bmc', 'bmd', 'bme', 'bmf', 'bmg', 'bmh', 'bmi', 'bmj', 'bmk', 'bml', 'bmm', 'bmn', 'bmo', 'bmp', 'bmq', 'bmr', 'bms', 'bmt', 'bmu', 'bmv', 'bmw', 'bmx', 'bmy', 'bmz', 'bna', 'bnb', 'bnc', 'bnd', 'bne', 'bnf', 'bng', 'bni', 'bnj', 'bnk', 'bnl', 'bnm', 'bnn', 'bno', 'bnp', 'bnq', 'bnr', 'bns', 'bnt', 'bnu', 'bnv', 'bnw', 'bnx', 'bny', 'bnz', 'boa', 'bob', 'boe', 'bof', 'bog', 'boh', 'boi', 'boj', 'bok', 'bol', 'bom', 'bon', 'boo', 'bop', 'boq', 'bor', 'bot', 'bou', 'bov', 'bow', 'box', 'boy', 'boz', 'bpa', 'bpb', 'bpd', 'bpg', 'bph', 'bpi', 'bpj', 'bpk', 'bpl', 'bpm', 'bpn', 'bpo', 'bpp', 'bpq', 'bpr', 'bps', 'bpt', 'bpu', 'bpv', 'bpw', 'bpx', 'bpy', 'bpz', 'bqa', 'bqb', 'bqc', 'bqd', 'bqf', 'bqg', 'bqh', 'bqi', 'bqj', 'bqk', 'bql', 'bqm', 'bqn', 'bqo', 'bqp', 'bqq', 'bqr', 'bqs', 'bqt', 'bqu', 'bqv', 'bqw', 'bqx', 'bqy', 'bqz', 'bra', 'brb', 'brc', 'brd', 'brf', 'brg', 'brh', 'bri', 'brj', 'brk', 'brl', 'brm', 'brn', 'bro', 'brp', 'brq', 'brr', 'brs', 'brt', 'bru', 'brv', 'brw', 'brx', 'bry', 'brz', 'bsa', 'bsb', 'bsc', 'bse', 'bsf', 'bsg', 'bsh', 'bsi', 'bsj', 'bsk', 'bsl', 'bsm', 'bsn', 'bso', 'bsp', 'bsq', 'bsr', 'bss', 'bst', 'bsu', 'bsv', 'bsw', 'bsx', 'bsy', 'bta', 'btb', 'btc', 'btd', 'bte', 'btf', 'btg', 'bth', 'bti', 'btj', 'btk', 'btl', 'btm', 'btn', 'bto', 'btp', 'btq', 'btr', 'bts', 'btt', 'btu', 'btv', 'btw', 'btx', 'bty', 'btz', 'bua', 'bub', 'buc', 'bud', 'bue', 'buf', 'bug', 'buh', 'bui', 'buj', 'buk', 'bum', 'bun', 'buo', 'bup', 'buq', 'bus', 'but', 'buu', 'buv', 'buw', 'bux', 'buy', 'buz', 'bva', 'bvb', 'bvc', 'bvd', 'bve', 'bvf', 'bvg', 'bvh', 'bvi', 'bvj', 'bvk', 'bvl', 'bvm', 'bvn', 'bvo', 'bvp', 'bvq', 'bvr', 'bvt', 'bvu', 'bvv', 'bvw', 'bvx', 'bvy', 'bvz', 'bwa', 'bwb', 'bwc', 'bwd', 'bwe', 'bwf', 'bwg', 'bwh', 'bwi', 'bwj', 'bwk', 'bwl', 'bwm', 'bwn', 'bwo', 'bwp', 'bwq', 'bwr', 'bws', 'bwt', 'bwu', 'bww', 'bwx', 'bwy', 'bwz', 'bxa', 'bxb', 'bxc', 'bxd', 'bxe', 'bxf', 'bxg', 'bxh', 'bxi', 'bxj', 'bxk', 'bxl', 'bxm', 'bxn', 'bxo', 'bxp', 'bxq', 'bxr', 'bxs', 'bxu', 'bxv', 'bxw', 'bxx', 'bxz', 'bya', 'byb', 'byc', 'byd', 'bye', 'byf', 'byg', 'byh', 'byi', 'byj', 'byk', 'byl', 'bym', 'byn', 'byo', 'byp', 'byq', 'byr', 'bys', 'byt', 'byv', 'byw', 'byx', 'byy', 'byz', 'bza', 'bzb', 'bzc', 'bzd', 'bze', 'bzf', 'bzg', 'bzh', 'bzi', 'bzj', 'bzk', 'bzl', 'bzm', 'bzn', 'bzo', 'bzp', 'bzq', 'bzr', 'bzs', 'bzt', 'bzu', 'bzv', 'bzw', 'bzx', 'bzy', 'bzz', 'caa', 'cab', 'cac', 'cad', 'cae', 'caf', 'cag', 'cah', 'cai', 'caj', 'cak', 'cal', 'cam', 'can', 'cao', 'cap', 'caq', 'car', 'cas', 'cau', 'cav', 'caw', 'cax', 'cay', 'caz', 'cba', 'cbb', 'cbc', 'cbd', 'cbe', 'cbg', 'cbh', 'cbi', 'cbj', 'cbk', 'cbl', 'cbn', 'cbo', 'cbq', 'cbr', 'cbs', 'cbt', 'cbu', 'cbv', 'cbw', 'cby', 'cca', 'ccc', 'ccd', 'cce', 'ccg', 'cch', 'ccj', 'ccl', 'ccm', 'ccn', 'cco', 'ccp', 'ccq', 'ccr', 'ccs', 'cda', 'cdc', 'cdd', 'cde', 'cdf', 'cdg', 'cdh', 'cdi', 'cdj', 'cdm', 'cdn', 'cdo', 'cdr', 'cds', 'cdy', 'cdz', 'cea', 'ceb', 'ceg', 'cek', 'cel', 'cen', 'cet', 'cfa', 'cfd', 'cfg', 'cfm', 'cga', 'cgc', 'cgg', 'cgk', 'chb', 'chc', 'chd', 'chf', 'chg', 'chh', 'chj', 'chk', 'chl', 'chm', 'chn', 'cho', 'chp', 'chq', 'chr', 'cht', 'chw', 'chx', 'chy', 'chz', 'cia', 'cib', 'cic', 'cid', 'cie', 'cih', 'cik', 'cim', 'cin', 'cip', 'cir', 'ciw', 'ciy', 'cja', 'cje', 'cjh', 'cji', 'cjk', 'cjm', 'cjn', 'cjo', 'cjp', 'cjr', 'cjs', 'cjv', 'cjy', 'cka', 'ckb', 'ckh', 'ckl', 'ckn', 'cko', 'ckq', 'ckr', 'cks', 'ckt', 'cku', 'ckv', 'ckx', 'cky', 'ckz', 'cla', 'clc', 'cld', 'cle', 'clh', 'cli', 'clj', 'clk', 'cll', 'clm', 'clo', 'clt', 'clu', 'clw', 'cly', 'cma', 'cmc', 'cme', 'cmg', 'cmi', 'cmk', 'cml', 'cmm', 'cmn', 'cmo', 'cmr', 'cms', 'cmt', 'cna', 'cnb', 'cnc', 'cng', 'cnh', 'cni', 'cnk', 'cnl', 'cno', 'cnr', 'cns', 'cnt', 'cnu', 'cnw', 'cnx', 'coa', 'cob', 'coc', 'cod', 'coe', 'cof', 'cog', 'coh', 'coj', 'cok', 'col', 'com', 'con', 'coo', 'cop', 'coq', 'cot', 'cou', 'cov', 'cow', 'cox', 'coy', 'coz', 'cpa', 'cpb', 'cpc', 'cpe', 'cpf', 'cpg', 'cpi', 'cpn', 'cpo', 'cpp', 'cps', 'cpu', 'cpx', 'cpy', 'cqd', 'cqu', 'cra', 'crb', 'crc', 'crd', 'crf', 'crg', 'crh', 'cri', 'crj', 'crk', 'crl', 'crm', 'crn', 'cro', 'crp', 'crq', 'crr', 'crs', 'crt', 'crv', 'crw', 'crx', 'cry', 'crz', 'csa', 'csb', 'csc', 'csd', 'cse', 'csf', 'csg', 'csh', 'csi', 'csj', 'csk', 'csl', 'csm', 'csn', 'cso', 'csq', 'csr', 'css', 'cst', 'csu', 'csv', 'csw', 'csy', 'csz', 'cta', 'ctc', 'ctd', 'cte', 'ctg', 'cth', 'ctl', 'ctm', 'ctn', 'cto', 'ctp', 'cts', 'ctt', 'ctu', 'ctz', 'cua', 'cub', 'cuc', 'cug', 'cuh', 'cui', 'cuj', 'cuk', 'cul', 'cum', 'cuo', 'cup', 'cuq', 'cur', 'cus', 'cut', 'cuu', 'cuv', 'cuw', 'cux', 'cuy', 'cvg', 'cvn', 'cwa', 'cwb', 'cwd', 'cwe', 'cwg', 'cwt', 'cya', 'cyb', 'cyo', 'czh', 'czk', 'czn', 'czo', 'czt', 'daa', 'dac', 'dad', 'dae', 'daf', 'dag', 'dah', 'dai', 'daj', 'dak', 'dal', 'dam', 'dao', 'dap', 'daq', 'dar', 'das', 'dau', 'dav', 'daw', 'dax', 'day', 'daz', 'dba', 'dbb', 'dbd', 'dbe', 'dbf', 'dbg', 'dbi', 'dbj', 'dbl', 'dbm', 'dbn', 'dbo', 'dbp', 'dbq', 'dbr', 'dbt', 'dbu', 'dbv', 'dbw', 'dby', 'dcc', 'dcr', 'dda', 'ddd', 'dde', 'ddg', 'ddi', 'ddj', 'ddn', 'ddo', 'ddr', 'dds', 'ddw', 'dec', 'ded', 'dee', 'def', 'deg', 'deh', 'dei', 'dek', 'del', 'dem', 'den', 'dep', 'deq', 'der', 'des', 'dev', 'dez', 'dga', 'dgb', 'dgc', 'dgd', 'dge', 'dgg', 'dgh', 'dgi', 'dgk', 'dgl', 'dgn', 'dgo', 'dgr', 'dgs', 'dgt', 'dgu', 'dgw', 'dgx', 'dgz', 'dha', 'dhd', 'dhg', 'dhi', 'dhl', 'dhm', 'dhn', 'dho', 'dhr', 'dhs', 'dhu', 'dhv', 'dhw', 'dhx', 'dia', 'dib', 'dic', 'did', 'dif', 'dig', 'dih', 'dii', 'dij', 'dik', 'dil', 'dim', 'din', 'dio', 'dip', 'diq', 'dir', 'dis', 'dit', 'diu', 'diw', 'dix', 'diy', 'diz', 'dja', 'djb', 'djc', 'djd', 'dje', 'djf', 'dji', 'djj', 'djk', 'djl', 'djm', 'djn', 'djo', 'djr', 'dju', 'djw', 'dka', 'dkk', 'dkl', 'dkr', 'dks', 'dkx', 'dlg', 'dlk', 'dlm', 'dln', 'dma', 'dmb', 'dmc', 'dmd', 'dme', 'dmg', 'dmk', 'dml', 'dmm', 'dmn', 'dmo', 'dmr', 'dms', 'dmu', 'dmv', 'dmw', 'dmx', 'dmy', 'dna', 'dnd', 'dne', 'dng', 'dni', 'dnj', 'dnk', 'dnn', 'dnr', 'dnt', 'dnu', 'dnv', 'dnw', 'dny', 'doa', 'dob', 'doc', 'doe', 'dof', 'doh', 'doi', 'dok', 'dol', 'don', 'doo', 'dop', 'doq', 'dor', 'dos', 'dot', 'dov', 'dow', 'dox', 'doy', 'doz', 'dpp', 'dra', 'drb', 'drc', 'drd', 'dre', 'drg', 'drh', 'dri', 'drl', 'drn', 'dro', 'drq', 'drr', 'drs', 'drt', 'dru', 'drw', 'dry', 'dsb', 'dse', 'dsh', 'dsi', 'dsl', 'dsn', 'dso', 'dsq', 'dta', 'dtb', 'dtd', 'dth', 'dti', 'dtk', 'dtm', 'dtn', 'dto', 'dtp', 'dtr', 'dts', 'dtt', 'dtu', 'dty', 'dua', 'dub', 'duc', 'dud', 'due', 'duf', 'dug', 'duh', 'dui', 'duj', 'duk', 'dul', 'dum', 'dun', 'duo', 'dup', 'duq', 'dur', 'dus', 'duu', 'duv', 'duw', 'dux', 'duy', 'duz', 'dva', 'dwa', 'dwl', 'dwr', 'dws', 'dwu', 'dww', 'dwy', 'dya', 'dyb', 'dyd', 'dyg', 'dyi', 'dym', 'dyn', 'dyo', 'dyu', 'dyy', 'dza', 'dzd', 'dze', 'dzg', 'dzl', 'dzn', 'eaa', 'ebg', 'ebk', 'ebo', 'ebr', 'ebu', 'ecr', 'ecs', 'ecy', 'eee', 'efa', 'efe', 'efi', 'ega', 'egl', 'ego', 'egx', 'egy', 'ehu', 'eip', 'eit', 'eiv', 'eja', 'eka', 'ekc', 'eke', 'ekg', 'eki', 'ekk', 'ekl', 'ekm', 'eko', 'ekp', 'ekr', 'eky', 'ele', 'elh', 'eli', 'elk', 'elm', 'elo', 'elp', 'elu', 'elx', 'ema', 'emb', 'eme', 'emg', 'emi', 'emk', 'emm', 'emn', 'emo', 'emp', 'ems', 'emu', 'emw', 'emx', 'emy', 'ena', 'enb', 'enc', 'end', 'enf', 'enh', 'enl', 'enm', 'enn', 'eno', 'enq', 'enr', 'enu', 'env', 'enw', 'enx', 'eot', 'epi', 'era', 'erg', 'erh', 'eri', 'erk', 'ero', 'err', 'ers', 'ert', 'erw', 'ese', 'esg', 'esh', 'esi', 'esk', 'esl', 'esm', 'esn', 'eso', 'esq', 'ess', 'esu', 'esx', 'esy', 'etb', 'etc', 'eth', 'etn', 'eto', 'etr', 'ets', 'ett', 'etu', 'etx', 'etz', 'euq', 'eve', 'evh', 'evn', 'ewo', 'ext', 'eya', 'eyo', 'eza', 'eze', 'faa', 'fab', 'fad', 'faf', 'fag', 'fah', 'fai', 'faj', 'fak', 'fal', 'fam', 'fan', 'fap', 'far', 'fat', 'fau', 'fax', 'fay', 'faz', 'fbl', 'fcs', 'fer', 'ffi', 'ffm', 'fgr', 'fia', 'fie', 'fil', 'fip', 'fir', 'fit', 'fiu', 'fiw', 'fkk', 'fkv', 'fla', 'flh', 'fli', 'fll', 'fln', 'flr', 'fly', 'fmp', 'fmu', 'fnb', 'fng', 'fni', 'fod', 'foi', 'fom', 'fon', 'for', 'fos', 'fox', 'fpe', 'fqs', 'frc', 'frd', 'frk', 'frm', 'fro', 'frp', 'frq', 'frr', 'frs', 'frt', 'fse', 'fsl', 'fss', 'fub', 'fuc', 'fud', 'fue', 'fuf', 'fuh', 'fui', 'fuj', 'fum', 'fun', 'fuq', 'fur', 'fut', 'fuu', 'fuv', 'fuy', 'fvr', 'fwa', 'fwe', 'gaa', 'gab', 'gac', 'gad', 'gae', 'gaf', 'gag', 'gah', 'gai', 'gaj', 'gak', 'gal', 'gam', 'gan', 'gao', 'gap', 'gaq', 'gar', 'gas', 'gat', 'gau', 'gav', 'gaw', 'gax', 'gay', 'gaz', 'gba', 'gbb', 'gbc', 'gbd', 'gbe', 'gbf', 'gbg', 'gbh', 'gbi', 'gbj', 'gbk', 'gbl', 'gbm', 'gbn', 'gbo', 'gbp', 'gbq', 'gbr', 'gbs', 'gbu', 'gbv', 'gbw', 'gbx', 'gby', 'gbz', 'gcc', 'gcd', 'gce', 'gcf', 'gcl', 'gcn', 'gcr', 'gct', 'gda', 'gdb', 'gdc', 'gdd', 'gde', 'gdf', 'gdg', 'gdh', 'gdi', 'gdj', 'gdk', 'gdl', 'gdm', 'gdn', 'gdo', 'gdq', 'gdr', 'gds', 'gdt', 'gdu', 'gdx', 'gea', 'geb', 'gec', 'ged', 'geg', 'geh', 'gei', 'gej', 'gek', 'gel', 'gem', 'geq', 'ges', 'gev', 'gew', 'gex', 'gey', 'gez', 'gfk', 'gft', 'gfx', 'gga', 'ggb', 'ggd', 'gge', 'ggg', 'ggk', 'ggl', 'ggn', 'ggo', 'ggr', 'ggt', 'ggu', 'ggw', 'gha', 'ghc', 'ghe', 'ghh', 'ghk', 'ghl', 'ghn', 'gho', 'ghr', 'ghs', 'ght', 'gia', 'gib', 'gic', 'gid', 'gie', 'gig', 'gih', 'gil', 'gim', 'gin', 'gio', 'gip', 'giq', 'gir', 'gis', 'git', 'giu', 'giw', 'gix', 'giy', 'giz', 'gji', 'gjk', 'gjm', 'gjn', 'gjr', 'gju', 'gka', 'gkd', 'gke', 'gkn', 'gko', 'gkp', 'gku', 'glc', 'gld', 'glh', 'gli', 'glj', 'glk', 'gll', 'glo', 'glr', 'glu', 'glw', 'gly', 'gma', 'gmb', 'gmd', 'gme', 'gmg', 'gmh', 'gml', 'gmm', 'gmn', 'gmq', 'gmu', 'gmv', 'gmw', 'gmx', 'gmy', 'gmz', 'gna', 'gnb', 'gnc', 'gnd', 'gne', 'gng', 'gnh', 'gni', 'gnj', 'gnk', 'gnl', 'gnm', 'gnn', 'gno', 'gnq', 'gnr', 'gnt', 'gnu', 'gnw', 'gnz', 'goa', 'gob', 'goc', 'god', 'goe', 'gof', 'gog', 'goh', 'goi', 'goj', 'gok', 'gol', 'gom', 'gon', 'goo', 'gop', 'goq', 'gor', 'gos', 'got', 'gou', 'gow', 'gox', 'goy', 'goz', 'gpa', 'gpe', 'gpn', 'gqa', 'gqi', 'gqn', 'gqr', 'gqu', 'gra', 'grb', 'grc', 'grd', 'grg', 'grh', 'gri', 'grj', 'grk', 'grm', 'gro', 'grq', 'grr', 'grs', 'grt', 'gru', 'grv', 'grw', 'grx', 'gry', 'grz', 'gse', 'gsg', 'gsl', 'gsm', 'gsn', 'gso', 'gsp', 'gss', 'gsw', 'gta', 'gti', 'gtu', 'gua', 'gub', 'guc', 'gud', 'gue', 'guf', 'gug', 'guh', 'gui', 'guk', 'gul', 'gum', 'gun', 'guo', 'gup', 'guq', 'gur', 'gus', 'gut', 'guu', 'guv', 'guw', 'gux', 'guz', 'gva', 'gvc', 'gve', 'gvf', 'gvj', 'gvl', 'gvm', 'gvn', 'gvo', 'gvp', 'gvr', 'gvs', 'gvy', 'gwa', 'gwb', 'gwc', 'gwd', 'gwe', 'gwf', 'gwg', 'gwi', 'gwj', 'gwm', 'gwn', 'gwr', 'gwt', 'gwu', 'gww', 'gwx', 'gxx', 'gya', 'gyb', 'gyd', 'gye', 'gyf', 'gyg', 'gyi', 'gyl', 'gym', 'gyn', 'gyo', 'gyr', 'gyy', 'gza', 'gzi', 'gzn', 'haa', 'hab', 'hac', 'had', 'hae', 'haf', 'hag', 'hah', 'hai', 'haj', 'hak', 'hal', 'ham', 'han', 'hao', 'hap', 'haq', 'har', 'has', 'hav', 'haw', 'hax', 'hay', 'haz', 'hba', 'hbb', 'hbn', 'hbo', 'hbu', 'hca', 'hch', 'hdn', 'hds', 'hdy', 'hea', 'hed', 'heg', 'heh', 'hei', 'hem', 'hgm', 'hgw', 'hhi', 'hhr', 'hhy', 'hia', 'hib', 'hid', 'hif', 'hig', 'hih', 'hii', 'hij', 'hik', 'hil', 'him', 'hio', 'hir', 'hit', 'hiw', 'hix', 'hji', 'hka', 'hke', 'hkk', 'hkn', 'hks', 'hla', 'hlb', 'hld', 'hle', 'hlt', 'hlu', 'hma', 'hmb', 'hmc', 'hmd', 'hme', 'hmf', 'hmg', 'hmh', 'hmi', 'hmj', 'hmk', 'hml', 'hmm', 'hmn', 'hmp', 'hmq', 'hmr', 'hms', 'hmt', 'hmu', 'hmv', 'hmw', 'hmx', 'hmy', 'hmz', 'hna', 'hnd', 'hne', 'hnh', 'hni', 'hnj', 'hnn', 'hno', 'hns', 'hnu', 'hoa', 'hob', 'hoc', 'hod', 'hoe', 'hoh', 'hoi', 'hoj', 'hok', 'hol', 'hom', 'hoo', 'hop', 'hor', 'hos', 'hot', 'hov', 'how', 'hoy', 'hoz', 'hpo', 'hps', 'hra', 'hrc', 'hre', 'hrk', 'hrm', 'hro', 'hrp', 'hrr', 'hrt', 'hru', 'hrw', 'hrx', 'hrz', 'hsb', 'hsh', 'hsl', 'hsn', 'hss', 'hti', 'hto', 'hts', 'htu', 'htx', 'hub', 'huc', 'hud', 'hue', 'huf', 'hug', 'huh', 'hui', 'huj', 'huk', 'hul', 'hum', 'huo', 'hup', 'huq', 'hur', 'hus', 'hut', 'huu', 'huv', 'huw', 'hux', 'huy', 'huz', 'hvc', 'hve', 'hvk', 'hvn', 'hvv', 'hwa', 'hwc', 'hwo', 'hya', 'hyw', 'hyx', 'iai', 'ian', 'iap', 'iar', 'iba', 'ibb', 'ibd', 'ibe', 'ibg', 'ibh', 'ibi', 'ibl', 'ibm', 'ibn', 'ibr', 'ibu', 'iby', 'ica', 'ich', 'icl', 'icr', 'ida', 'idb', 'idc', 'idd', 'ide', 'idi', 'idr', 'ids', 'idt', 'idu', 'ifa', 'ifb', 'ife', 'iff', 'ifk', 'ifm', 'ifu', 'ify', 'igb', 'ige', 'igg', 'igl', 'igm', 'ign', 'igo', 'igs', 'igw', 'ihb', 'ihi', 'ihp', 'ihw', 'iin', 'iir', 'ijc', 'ije', 'ijj', 'ijn', 'ijo', 'ijs', 'ike', 'iki', 'ikk', 'ikl', 'iko', 'ikp', 'ikr', 'iks', 'ikt', 'ikv', 'ikw', 'ikx', 'ikz', 'ila', 'ilb', 'ilg', 'ili', 'ilk', 'ill', 'ilm', 'ilo', 'ilp', 'ils', 'ilu', 'ilv', 'ilw', 'ima', 'ime', 'imi', 'iml', 'imn', 'imo', 'imr', 'ims', 'imy', 'inb', 'inc', 'ine', 'ing', 'inh', 'inj', 'inl', 'inm', 'inn', 'ino', 'inp', 'ins', 'int', 'inz', 'ior', 'iou', 'iow', 'ipi', 'ipo', 'iqu', 'iqw', 'ira', 'ire', 'irh', 'iri', 'irk', 'irn', 'iro', 'irr', 'iru', 'irx', 'iry', 'isa', 'isc', 'isd', 'ise', 'isg', 'ish', 'isi', 'isk', 'ism', 'isn', 'iso', 'isr', 'ist', 'isu', 'itb', 'itc', 'itd', 'ite', 'iti', 'itk', 'itl', 'itm', 'ito', 'itr', 'its', 'itt', 'itv', 'itw', 'itx', 'ity', 'itz', 'ium', 'ivb', 'ivv', 'iwk', 'iwm', 'iwo', 'iws', 'ixc', 'ixl', 'iya', 'iyo', 'iyx', 'izh', 'izi', 'izr', 'izz', 'jaa', 'jab', 'jac', 'jad', 'jae', 'jaf', 'jah', 'jaj', 'jak', 'jal', 'jam', 'jan', 'jao', 'jaq', 'jar', 'jas', 'jat', 'jau', 'jax', 'jay', 'jaz', 'jbe', 'jbi', 'jbj', 'jbk', 'jbn', 'jbo', 'jbr', 'jbt', 'jbu', 'jbw', 'jcs', 'jct', 'jda', 'jdg', 'jdt', 'jeb', 'jee', 'jeg', 'jeh', 'jei', 'jek', 'jel', 'jen', 'jer', 'jet', 'jeu', 'jgb', 'jge', 'jgk', 'jgo', 'jhi', 'jhs', 'jia', 'jib', 'jic', 'jid', 'jie', 'jig', 'jih', 'jii', 'jil', 'jim', 'jio', 'jiq', 'jit', 'jiu', 'jiv', 'jiy', 'jje', 'jjr', 'jka', 'jkm', 'jko', 'jkp', 'jkr', 'jku', 'jle', 'jls', 'jma', 'jmb', 'jmc', 'jmd', 'jmi', 'jml', 'jmn', 'jmr', 'jms', 'jmw', 'jmx', 'jna', 'jnd', 'jng', 'jni', 'jnj', 'jnl', 'jns', 'job', 'jod', 'jog', 'jor', 'jos', 'jow', 'jpa', 'jpr', 'jpx', 'jqr', 'jra', 'jrb', 'jrr', 'jrt', 'jru', 'jsl', 'jua', 'jub', 'juc', 'jud', 'juh', 'jui', 'juk', 'jul', 'jum', 'jun', 'juo', 'jup', 'jur', 'jus', 'jut', 'juu', 'juw', 'juy', 'jvd', 'jvn', 'jwi', 'jya', 'jye', 'jyy', 'kaa', 'kab', 'kac', 'kad', 'kae', 'kaf', 'kag', 'kah', 'kai', 'kaj', 'kak', 'kam', 'kao', 'kap', 'kaq', 'kar', 'kav', 'kaw', 'kax', 'kay', 'kba', 'kbb', 'kbc', 'kbd', 'kbe', 'kbf', 'kbg', 'kbh', 'kbi', 'kbj', 'kbk', 'kbl', 'kbm', 'kbn', 'kbo', 'kbp', 'kbq', 'kbr', 'kbs', 'kbt', 'kbu', 'kbv', 'kbw', 'kbx', 'kby', 'kbz', 'kca', 'kcb', 'kcc', 'kcd', 'kce', 'kcf', 'kcg', 'kch', 'kci', 'kcj', 'kck', 'kcl', 'kcm', 'kcn', 'kco', 'kcp', 'kcq', 'kcr', 'kcs', 'kct', 'kcu', 'kcv', 'kcw', 'kcx', 'kcy', 'kcz', 'kda', 'kdc', 'kdd', 'kde', 'kdf', 'kdg', 'kdh', 'kdi', 'kdj', 'kdk', 'kdl', 'kdm', 'kdn', 'kdo', 'kdp', 'kdq', 'kdr', 'kdt', 'kdu', 'kdv', 'kdw', 'kdx', 'kdy', 'kdz', 'kea', 'keb', 'kec', 'ked', 'kee', 'kef', 'keg', 'keh', 'kei', 'kej', 'kek', 'kel', 'kem', 'ken', 'keo', 'kep', 'keq', 'ker', 'kes', 'ket', 'keu', 'kev', 'kew', 'kex', 'key', 'kez', 'kfa', 'kfb', 'kfc', 'kfd', 'kfe', 'kff', 'kfg', 'kfh', 'kfi', 'kfj', 'kfk', 'kfl', 'kfm', 'kfn', 'kfo', 'kfp', 'kfq', 'kfr', 'kfs', 'kft', 'kfu', 'kfv', 'kfw', 'kfx', 'kfy', 'kfz', 'kga', 'kgb', 'kgc', 'kgd', 'kge', 'kgf', 'kgg', 'kgh', 'kgi', 'kgj', 'kgk', 'kgl', 'kgm', 'kgn', 'kgo', 'kgp', 'kgq', 'kgr', 'kgs', 'kgt', 'kgu', 'kgv', 'kgw', 'kgx', 'kgy', 'kha', 'khb', 'khc', 'khd', 'khe', 'khf', 'khg', 'khh', 'khi', 'khj', 'khk', 'khl', 'khn', 'kho', 'khp', 'khq', 'khr', 'khs', 'kht', 'khu', 'khv', 'khw', 'khx', 'khy', 'khz', 'kia', 'kib', 'kic', 'kid', 'kie', 'kif', 'kig', 'kih', 'kii', 'kij', 'kil', 'kim', 'kio', 'kip', 'kiq', 'kis', 'kit', 'kiu', 'kiv', 'kiw', 'kix', 'kiy', 'kiz', 'kja', 'kjb', 'kjc', 'kjd', 'kje', 'kjf', 'kjg', 'kjh', 'kji', 'kjj', 'kjk', 'kjl', 'kjm', 'kjn', 'kjo', 'kjp', 'kjq', 'kjr', 'kjs', 'kjt', 'kju', 'kjv', 'kjx', 'kjy', 'kjz', 'kka', 'kkb', 'kkc', 'kkd', 'kke', 'kkf', 'kkg', 'kkh', 'kki', 'kkj', 'kkk', 'kkl', 'kkm', 'kkn', 'kko', 'kkp', 'kkq', 'kkr', 'kks', 'kkt', 'kku', 'kkv', 'kkw', 'kkx', 'kky', 'kkz', 'kla', 'klb', 'klc', 'kld', 'kle', 'klf', 'klg', 'klh', 'kli', 'klj', 'klk', 'kll', 'klm', 'kln', 'klo', 'klp', 'klq', 'klr', 'kls', 'klt', 'klu', 'klv', 'klw', 'klx', 'kly', 'klz', 'kma', 'kmb', 'kmc', 'kmd', 'kme', 'kmf', 'kmg', 'kmh', 'kmi', 'kmj', 'kmk', 'kml', 'kmm', 'kmn', 'kmo', 'kmp', 'kmq', 'kmr', 'kms', 'kmt', 'kmu', 'kmv', 'kmw', 'kmx', 'kmy', 'kmz', 'kna', 'knb', 'knc', 'knd', 'kne', 'knf', 'kng', 'kni', 'knj', 'knk', 'knl', 'knm', 'knn', 'kno', 'knp', 'knq', 'knr', 'kns', 'knt', 'knu', 'knv', 'knw', 'knx', 'kny', 'knz', 'koa', 'koc', 'kod', 'koe', 'kof', 'kog', 'koh', 'koi', 'koj', 'kok', 'kol', 'koo', 'kop', 'koq', 'kos', 'kot', 'kou', 'kov', 'kow', 'kox', 'koy', 'koz', 'kpa', 'kpb', 'kpc', 'kpd', 'kpe', 'kpf', 'kpg', 'kph', 'kpi', 'kpj', 'kpk', 'kpl', 'kpm', 'kpn', 'kpo', 'kpp', 'kpq', 'kpr', 'kps', 'kpt', 'kpu', 'kpv', 'kpw', 'kpx', 'kpy', 'kpz', 'kqa', 'kqb', 'kqc', 'kqd', 'kqe', 'kqf', 'kqg', 'kqh', 'kqi', 'kqj', 'kqk', 'kql', 'kqm', 'kqn', 'kqo', 'kqp', 'kqq', 'kqr', 'kqs', 'kqt', 'kqu', 'kqv', 'kqw', 'kqx', 'kqy', 'kqz', 'kra', 'krb', 'krc', 'krd', 'kre', 'krf', 'krh', 'kri', 'krj', 'krk', 'krl', 'krm', 'krn', 'kro', 'krp', 'krr', 'krs', 'krt', 'kru', 'krv', 'krw', 'krx', 'kry', 'krz', 'ksa', 'ksb', 'ksc', 'ksd', 'kse', 'ksf', 'ksg', 'ksh', 'ksi', 'ksj', 'ksk', 'ksl', 'ksm', 'ksn', 'kso', 'ksp', 'ksq', 'ksr', 'kss', 'kst', 'ksu', 'ksv', 'ksw', 'ksx', 'ksy', 'ksz', 'kta', 'ktb', 'ktc', 'ktd', 'kte', 'ktf', 'ktg', 'kth', 'kti', 'ktj', 'ktk', 'ktl', 'ktm', 'ktn', 'kto', 'ktp', 'ktq', 'ktr', 'kts', 'ktt', 'ktu', 'ktv', 'ktw', 'ktx', 'kty', 'ktz', 'kub', 'kuc', 'kud', 'kue', 'kuf', 'kug', 'kuh', 'kui', 'kuj', 'kuk', 'kul', 'kum', 'kun', 'kuo', 'kup', 'kuq', 'kus', 'kut', 'kuu', 'kuv', 'kuw', 'kux', 'kuy', 'kuz', 'kva', 'kvb', 'kvc', 'kvd', 'kve', 'kvf', 'kvg', 'kvh', 'kvi', 'kvj', 'kvk', 'kvl', 'kvm', 'kvn', 'kvo', 'kvp', 'kvq', 'kvr', 'kvs', 'kvt', 'kvu', 'kvv', 'kvw', 'kvx', 'kvy', 'kvz', 'kwa', 'kwb', 'kwc', 'kwd', 'kwe', 'kwf', 'kwg', 'kwh', 'kwi', 'kwj', 'kwk', 'kwl', 'kwm', 'kwn', 'kwo', 'kwp', 'kwq', 'kwr', 'kws', 'kwt', 'kwu', 'kwv', 'kww', 'kwx', 'kwy', 'kwz', 'kxa', 'kxb', 'kxc', 'kxd', 'kxe', 'kxf', 'kxh', 'kxi', 'kxj', 'kxk', 'kxl', 'kxm', 'kxn', 'kxo', 'kxp', 'kxq', 'kxr', 'kxs', 'kxt', 'kxu', 'kxv', 'kxw', 'kxx', 'kxy', 'kxz', 'kya', 'kyb', 'kyc', 'kyd', 'kye', 'kyf', 'kyg', 'kyh', 'kyi', 'kyj', 'kyk', 'kyl', 'kym', 'kyn', 'kyo', 'kyp', 'kyq', 'kyr', 'kys', 'kyt', 'kyu', 'kyv', 'kyw', 'kyx', 'kyy', 'kyz', 'kza', 'kzb', 'kzc', 'kzd', 'kze', 'kzf', 'kzg', 'kzh', 'kzi', 'kzj', 'kzk', 'kzl', 'kzm', 'kzn', 'kzo', 'kzp', 'kzq', 'kzr', 'kzs', 'kzt', 'kzu', 'kzv', 'kzw', 'kzx', 'kzy', 'kzz', 'laa', 'lab', 'lac', 'lad', 'lae', 'laf', 'lag', 'lah', 'lai', 'laj', 'lak', 'lal', 'lam', 'lan', 'lap', 'laq', 'lar', 'las', 'lau', 'law', 'lax', 'lay', 'laz', 'lba', 'lbb', 'lbc', 'lbe', 'lbf', 'lbg', 'lbi', 'lbj', 'lbk', 'lbl', 'lbm', 'lbn', 'lbo', 'lbq', 'lbr', 'lbs', 'lbt', 'lbu', 'lbv', 'lbw', 'lbx', 'lby', 'lbz', 'lcc', 'lcd', 'lce', 'lcf', 'lch', 'lcl', 'lcm', 'lcp', 'lcq', 'lcs', 'lda', 'ldb', 'ldd', 'ldg', 'ldh', 'ldi', 'ldj', 'ldk', 'ldl', 'ldm', 'ldn', 'ldo', 'ldp', 'ldq', 'lea', 'leb', 'lec', 'led', 'lee', 'lef', 'leg', 'leh', 'lei', 'lej', 'lek', 'lel', 'lem', 'len', 'leo', 'lep', 'leq', 'ler', 'les', 'let', 'leu', 'lev', 'lew', 'lex', 'ley', 'lez', 'lfa', 'lfn', 'lga', 'lgb', 'lgg', 'lgh', 'lgi', 'lgk', 'lgl', 'lgm', 'lgn', 'lgq', 'lgr', 'lgt', 'lgu', 'lgz', 'lha', 'lhh', 'lhi', 'lhl', 'lhm', 'lhn', 'lhp', 'lhs', 'lht', 'lhu', 'lia', 'lib', 'lic', 'lid', 'lie', 'lif', 'lig', 'lih', 'lii', 'lij', 'lik', 'lil', 'lio', 'lip', 'liq', 'lir', 'lis', 'liu', 'liv', 'liw', 'lix', 'liy', 'liz', 'lja', 'lje', 'lji', 'ljl', 'ljp', 'ljw', 'ljx', 'lka', 'lkb', 'lkc', 'lkd', 'lke', 'lkh', 'lki', 'lkj', 'lkl', 'lkm', 'lkn', 'lko', 'lkr', 'lks', 'lkt', 'lku', 'lky', 'lla', 'llb', 'llc', 'lld', 'lle', 'llf', 'llg', 'llh', 'lli', 'llj', 'llk', 'lll', 'llm', 'lln', 'llo', 'llp', 'llq', 'lls', 'llu', 'llx', 'lma', 'lmb', 'lmc', 'lmd', 'lme', 'lmf', 'lmg', 'lmh', 'lmi', 'lmj', 'lmk', 'lml', 'lmm', 'lmn', 'lmo', 'lmp', 'lmq', 'lmr', 'lmu', 'lmv', 'lmw', 'lmx', 'lmy', 'lmz', 'lna', 'lnb', 'lnd', 'lng', 'lnh', 'lni', 'lnj', 'lnl', 'lnm', 'lnn', 'lno', 'lns', 'lnu', 'lnw', 'lnz', 'loa', 'lob', 'loc', 'loe', 'lof', 'log', 'loh', 'loi', 'loj', 'lok', 'lol', 'lom', 'lon', 'loo', 'lop', 'loq', 'lor', 'los', 'lot', 'lou', 'lov', 'low', 'lox', 'loy', 'loz', 'lpa', 'lpe', 'lpn', 'lpo', 'lpx', 'lra', 'lrc', 'lre', 'lrg', 'lri', 'lrk', 'lrl', 'lrm', 'lrn', 'lro', 'lrr', 'lrt', 'lrv', 'lrz', 'lsa', 'lsd', 'lse', 'lsg', 'lsh', 'lsi', 'lsl', 'lsm', 'lso', 'lsp', 'lsr', 'lss', 'lst', 'lsy', 'ltc', 'ltg', 'lth', 'lti', 'ltn', 'lto', 'lts', 'ltu', 'lua', 'luc', 'lud', 'lue', 'luf', 'lui', 'luj', 'luk', 'lul', 'lum', 'lun', 'luo', 'lup', 'luq', 'lur', 'lus', 'lut', 'luu', 'luv', 'luw', 'luy', 'luz', 'lva', 'lvk', 'lvs', 'lvu', 'lwa', 'lwe', 'lwg', 'lwh', 'lwl', 'lwm', 'lwo', 'lws', 'lwt', 'lwu', 'lww', 'lya', 'lyg', 'lyn', 'lzh', 'lzl', 'lzn', 'lzz', 'maa', 'mab', 'mad', 'mae', 'maf', 'mag', 'mai', 'maj', 'mak', 'mam', 'man', 'map', 'maq', 'mas', 'mat', 'mau', 'mav', 'maw', 'max', 'maz', 'mba', 'mbb', 'mbc', 'mbd', 'mbe', 'mbf', 'mbh', 'mbi', 'mbj', 'mbk', 'mbl', 'mbm', 'mbn', 'mbo', 'mbp', 'mbq', 'mbr', 'mbs', 'mbt', 'mbu', 'mbv', 'mbw', 'mbx', 'mby', 'mbz', 'mca', 'mcb', 'mcc', 'mcd', 'mce', 'mcf', 'mcg', 'mch', 'mci', 'mcj', 'mck', 'mcl', 'mcm', 'mcn', 'mco', 'mcp', 'mcq', 'mcr', 'mcs', 'mct', 'mcu', 'mcv', 'mcw', 'mcx', 'mcy', 'mcz', 'mda', 'mdb', 'mdc', 'mdd', 'mde', 'mdf', 'mdg', 'mdh', 'mdi', 'mdj', 'mdk', 'mdl', 'mdm', 'mdn', 'mdp', 'mdq', 'mdr', 'mds', 'mdt', 'mdu', 'mdv', 'mdw', 'mdx', 'mdy', 'mdz', 'mea', 'meb', 'mec', 'med', 'mee', 'mef', 'meg', 'meh', 'mei', 'mej', 'mek', 'mel', 'mem', 'men', 'meo', 'mep', 'meq', 'mer', 'mes', 'met', 'meu', 'mev', 'mew', 'mey', 'mez', 'mfa', 'mfb', 'mfc', 'mfd', 'mfe', 'mff', 'mfg', 'mfh', 'mfi', 'mfj', 'mfk', 'mfl', 'mfm', 'mfn', 'mfo', 'mfp', 'mfq', 'mfr', 'mfs', 'mft', 'mfu', 'mfv', 'mfw', 'mfx', 'mfy', 'mfz', 'mga', 'mgb', 'mgc', 'mgd', 'mge', 'mgf', 'mgg', 'mgh', 'mgi', 'mgj', 'mgk', 'mgl', 'mgm', 'mgn', 'mgo', 'mgp', 'mgq', 'mgr', 'mgs', 'mgt', 'mgu', 'mgv', 'mgw', 'mgx', 'mgy', 'mgz', 'mha', 'mhb', 'mhc', 'mhd', 'mhe', 'mhf', 'mhg', 'mhh', 'mhi', 'mhj', 'mhk', 'mhl', 'mhm', 'mhn', 'mho', 'mhp', 'mhq', 'mhr', 'mhs', 'mht', 'mhu', 'mhw', 'mhx', 'mhy', 'mhz', 'mia', 'mib', 'mic', 'mid', 'mie', 'mif', 'mig', 'mih', 'mii', 'mij', 'mik', 'mil', 'mim', 'min', 'mio', 'mip', 'miq', 'mir', 'mis', 'mit', 'miu', 'miw', 'mix', 'miy', 'miz', 'mja', 'mjb', 'mjc', 'mjd', 'mje', 'mjg', 'mjh', 'mji', 'mjj', 'mjk', 'mjl', 'mjm', 'mjn', 'mjo', 'mjp', 'mjq', 'mjr', 'mjs', 'mjt', 'mju', 'mjv', 'mjw', 'mjx', 'mjy', 'mjz', 'mka', 'mkb', 'mkc', 'mke', 'mkf', 'mkg', 'mkh', 'mki', 'mkj', 'mkk', 'mkl', 'mkm', 'mkn', 'mko', 'mkp', 'mkq', 'mkr', 'mks', 'mkt', 'mku', 'mkv', 'mkw', 'mkx', 'mky', 'mkz', 'mla', 'mlb', 'mlc', 'mld', 'mle', 'mlf', 'mlh', 'mli', 'mlj', 'mlk', 'mll', 'mlm', 'mln', 'mlo', 'mlp', 'mlq', 'mlr', 'mls', 'mlu', 'mlv', 'mlw', 'mlx', 'mlz', 'mma', 'mmb', 'mmc', 'mmd', 'mme', 'mmf', 'mmg', 'mmh', 'mmi', 'mmj', 'mmk', 'mml', 'mmm', 'mmn', 'mmo', 'mmp', 'mmq', 'mmr', 'mmt', 'mmu', 'mmv', 'mmw', 'mmx', 'mmy', 'mmz', 'mna', 'mnb', 'mnc', 'mnd', 'mne', 'mnf', 'mng', 'mnh', 'mni', 'mnj', 'mnk', 'mnl', 'mnm', 'mnn', 'mno', 'mnp', 'mnq', 'mnr', 'mns', 'mnt', 'mnu', 'mnv', 'mnw', 'mnx', 'mny', 'mnz', 'moa', 'moc', 'mod', 'moe', 'mof', 'mog', 'moh', 'moi', 'moj', 'mok', 'mom', 'moo', 'mop', 'moq', 'mor', 'mos', 'mot', 'mou', 'mov', 'mow', 'mox', 'moy', 'moz', 'mpa', 'mpb', 'mpc', 'mpd', 'mpe', 'mpg', 'mph', 'mpi', 'mpj', 'mpk', 'mpl', 'mpm', 'mpn', 'mpo', 'mpp', 'mpq', 'mpr', 'mps', 'mpt', 'mpu', 'mpv', 'mpw', 'mpx', 'mpy', 'mpz', 'mqa', 'mqb', 'mqc', 'mqe', 'mqf', 'mqg', 'mqh', 'mqi', 'mqj', 'mqk', 'mql', 'mqm', 'mqn', 'mqo', 'mqp', 'mqq', 'mqr', 'mqs', 'mqt', 'mqu', 'mqv', 'mqw', 'mqx', 'mqy', 'mqz', 'mra', 'mrb', 'mrc', 'mrd', 'mre', 'mrf', 'mrg', 'mrh', 'mrj', 'mrk', 'mrl', 'mrm', 'mrn', 'mro', 'mrp', 'mrq', 'mrr', 'mrs', 'mrt', 'mru', 'mrv', 'mrw', 'mrx', 'mry', 'mrz', 'msb', 'msc', 'msd', 'mse', 'msf', 'msg', 'msh', 'msi', 'msj', 'msk', 'msl', 'msm', 'msn', 'mso', 'msp', 'msq', 'msr', 'mss', 'mst', 'msu', 'msv', 'msw', 'msx', 'msy', 'msz', 'mta', 'mtb', 'mtc', 'mtd', 'mte', 'mtf', 'mtg', 'mth', 'mti', 'mtj', 'mtk', 'mtl', 'mtm', 'mtn', 'mto', 'mtp', 'mtq', 'mtr', 'mts', 'mtt', 'mtu', 'mtv', 'mtw', 'mtx', 'mty', 'mua', 'mub', 'muc', 'mud', 'mue', 'mug', 'muh', 'mui', 'muj', 'muk', 'mul', 'mum', 'mun', 'muo', 'mup', 'muq', 'mur', 'mus', 'mut', 'muu', 'muv', 'mux', 'muy', 'muz', 'mva', 'mvb', 'mvd', 'mve', 'mvf', 'mvg', 'mvh', 'mvi', 'mvk', 'mvl', 'mvm', 'mvn', 'mvo', 'mvp', 'mvq', 'mvr', 'mvs', 'mvt', 'mvu', 'mvv', 'mvw', 'mvx', 'mvy', 'mvz', 'mwa', 'mwb', 'mwc', 'mwd', 'mwe', 'mwf', 'mwg', 'mwh', 'mwi', 'mwj', 'mwk', 'mwl', 'mwm', 'mwn', 'mwo', 'mwp', 'mwq', 'mwr', 'mws', 'mwt', 'mwu', 'mwv', 'mww', 'mwx', 'mwy', 'mwz', 'mxa', 'mxb', 'mxc', 'mxd', 'mxe', 'mxf', 'mxg', 'mxh', 'mxi', 'mxj', 'mxk', 'mxl', 'mxm', 'mxn', 'mxo', 'mxp', 'mxq', 'mxr', 'mxs', 'mxt', 'mxu', 'mxv', 'mxw', 'mxx', 'mxy', 'mxz', 'myb', 'myc', 'myd', 'mye', 'myf', 'myg', 'myh', 'myi', 'myj', 'myk', 'myl', 'mym', 'myn', 'myo', 'myp', 'myq', 'myr', 'mys', 'myt', 'myu', 'myv', 'myw', 'myx', 'myy', 'myz', 'mza', 'mzb', 'mzc', 'mzd', 'mze', 'mzg', 'mzh', 'mzi', 'mzj', 'mzk', 'mzl', 'mzm', 'mzn', 'mzo', 'mzp', 'mzq', 'mzr', 'mzs', 'mzt', 'mzu', 'mzv', 'mzw', 'mzx', 'mzy', 'mzz', 'naa', 'nab', 'nac', 'nad', 'nae', 'naf', 'nag', 'nah', 'nai', 'naj', 'nak', 'nal', 'nam', 'nan', 'nao', 'nap', 'naq', 'nar', 'nas', 'nat', 'naw', 'nax', 'nay', 'naz', 'nba', 'nbb', 'nbc', 'nbd', 'nbe', 'nbf', 'nbg', 'nbh', 'nbi', 'nbj', 'nbk', 'nbm', 'nbn', 'nbo', 'nbp', 'nbq', 'nbr', 'nbs', 'nbt', 'nbu', 'nbv', 'nbw', 'nbx', 'nby', 'nca', 'ncb', 'ncc', 'ncd', 'nce', 'ncf', 'ncg', 'nch', 'nci', 'ncj', 'nck', 'ncl', 'ncm', 'ncn', 'nco', 'ncp', 'ncq', 'ncr', 'ncs', 'nct', 'ncu', 'ncx', 'ncz', 'nda', 'ndb', 'ndc', 'ndd', 'ndf', 'ndg', 'ndh', 'ndi', 'ndj', 'ndk', 'ndl', 'ndm', 'ndn', 'ndp', 'ndq', 'ndr', 'nds', 'ndt', 'ndu', 'ndv', 'ndw', 'ndx', 'ndy', 'ndz', 'nea', 'neb', 'nec', 'ned', 'nee', 'nef', 'neg', 'neh', 'nei', 'nej', 'nek', 'nem', 'nen', 'neo', 'neq', 'ner', 'nes', 'net', 'neu', 'nev', 'new', 'nex', 'ney', 'nez', 'nfa', 'nfd', 'nfl', 'nfr', 'nfu', 'nga', 'ngb', 'ngc', 'ngd', 'nge', 'ngf', 'ngg', 'ngh', 'ngi', 'ngj', 'ngk', 'ngl', 'ngm', 'ngn', 'ngo', 'ngp', 'ngq', 'ngr', 'ngs', 'ngt', 'ngu', 'ngv', 'ngw', 'ngx', 'ngy', 'ngz', 'nha', 'nhb', 'nhc', 'nhd', 'nhe', 'nhf', 'nhg', 'nhh', 'nhi', 'nhk', 'nhm', 'nhn', 'nho', 'nhp', 'nhq', 'nhr', 'nht', 'nhu', 'nhv', 'nhw', 'nhx', 'nhy', 'nhz', 'nia', 'nib', 'nic', 'nid', 'nie', 'nif', 'nig', 'nih', 'nii', 'nij', 'nik', 'nil', 'nim', 'nin', 'nio', 'niq', 'nir', 'nis', 'nit', 'niu', 'niv', 'niw', 'nix', 'niy', 'niz', 'nja', 'njb', 'njd', 'njh', 'nji', 'njj', 'njl', 'njm', 'njn', 'njo', 'njr', 'njs', 'njt', 'nju', 'njx', 'njy', 'njz', 'nka', 'nkb', 'nkc', 'nkd', 'nke', 'nkf', 'nkg', 'nkh', 'nki', 'nkj', 'nkk', 'nkm', 'nkn', 'nko', 'nkp', 'nkq', 'nkr', 'nks', 'nkt', 'nku', 'nkv', 'nkw', 'nkx', 'nkz', 'nla', 'nlc', 'nle', 'nlg', 'nli', 'nlj', 'nlk', 'nll', 'nlm', 'nln', 'nlo', 'nlq', 'nlr', 'nlu', 'nlv', 'nlw', 'nlx', 'nly', 'nlz', 'nma', 'nmb', 'nmc', 'nmd', 'nme', 'nmf', 'nmg', 'nmh', 'nmi', 'nmj', 'nmk', 'nml', 'nmm', 'nmn', 'nmo', 'nmp', 'nmq', 'nmr', 'nms', 'nmt', 'nmu', 'nmv', 'nmw', 'nmx', 'nmy', 'nmz', 'nna', 'nnb', 'nnc', 'nnd', 'nne', 'nnf', 'nng', 'nnh', 'nni', 'nnj', 'nnk', 'nnl', 'nnm', 'nnn', 'nnp', 'nnq', 'nnr', 'nns', 'nnt', 'nnu', 'nnv', 'nnw', 'nnx', 'nny', 'nnz', 'noa', 'noc', 'nod', 'noe', 'nof', 'nog', 'noh', 'noi', 'noj', 'nok', 'nol', 'nom', 'non', 'noo', 'nop', 'noq', 'nos', 'not', 'nou', 'nov', 'now', 'noy', 'noz', 'npa', 'npb', 'npg', 'nph', 'npi', 'npl', 'npn', 'npo', 'nps', 'npu', 'npx', 'npy', 'nqg', 'nqk', 'nql', 'nqm', 'nqn', 'nqo', 'nqq', 'nqy', 'nra', 'nrb', 'nrc', 'nre', 'nrf', 'nrg', 'nri', 'nrk', 'nrl', 'nrm', 'nrn', 'nrp', 'nrr', 'nrt', 'nru', 'nrx', 'nrz', 'nsa', 'nsc', 'nsd', 'nse', 'nsf', 'nsg', 'nsh', 'nsi', 'nsk', 'nsl', 'nsm', 'nsn', 'nso', 'nsp', 'nsq', 'nsr', 'nss', 'nst', 'nsu', 'nsv', 'nsw', 'nsx', 'nsy', 'nsz', 'ntd', 'nte', 'ntg', 'nti', 'ntj', 'ntk', 'ntm', 'nto', 'ntp', 'ntr', 'nts', 'ntu', 'ntw', 'ntx', 'nty', 'ntz', 'nua', 'nub', 'nuc', 'nud', 'nue', 'nuf', 'nug', 'nuh', 'nui', 'nuj', 'nuk', 'nul', 'num', 'nun', 'nuo', 'nup', 'nuq', 'nur', 'nus', 'nut', 'nuu', 'nuv', 'nuw', 'nux', 'nuy', 'nuz', 'nvh', 'nvm', 'nvo', 'nwa', 'nwb', 'nwc', 'nwe', 'nwg', 'nwi', 'nwm', 'nwo', 'nwr', 'nwx', 'nwy', 'nxa', 'nxd', 'nxe', 'nxg', 'nxi', 'nxk', 'nxl', 'nxm', 'nxn', 'nxo', 'nxq', 'nxr', 'nxu', 'nxx', 'nyb', 'nyc', 'nyd', 'nye', 'nyf', 'nyg', 'nyh', 'nyi', 'nyj', 'nyk', 'nyl', 'nym', 'nyn', 'nyo', 'nyp', 'nyq', 'nyr', 'nys', 'nyt', 'nyu', 'nyv', 'nyw', 'nyx', 'nyy', 'nza', 'nzb', 'nzd', 'nzi', 'nzk', 'nzm', 'nzs', 'nzu', 'nzy', 'nzz', 'oaa', 'oac', 'oar', 'oav', 'obi', 'obk', 'obl', 'obm', 'obo', 'obr', 'obt', 'obu', 'oca', 'och', 'oco', 'ocu', 'oda', 'odk', 'odt', 'odu', 'ofo', 'ofs', 'ofu', 'ogb', 'ogc', 'oge', 'ogg', 'ogo', 'ogu', 'oht', 'ohu', 'oia', 'oin', 'ojb', 'ojc', 'ojg', 'ojp', 'ojs', 'ojv', 'ojw', 'oka', 'okb', 'okd', 'oke', 'okg', 'okh', 'oki', 'okj', 'okk', 'okl', 'okm', 'okn', 'oko', 'okr', 'oks', 'oku', 'okv', 'okx', 'ola', 'old', 'ole', 'olk', 'olm', 'olo', 'olr', 'olt', 'olu', 'oma', 'omb', 'omc', 'ome', 'omg', 'omi', 'omk', 'oml', 'omn', 'omo', 'omp', 'omq', 'omr', 'omt', 'omu', 'omv', 'omw', 'omx', 'ona', 'onb', 'one', 'ong', 'oni', 'onj', 'onk', 'onn', 'ono', 'onp', 'onr', 'ons', 'ont', 'onu', 'onw', 'onx', 'ood', 'oog', 'oon', 'oor', 'oos', 'opa', 'opk', 'opm', 'opo', 'opt', 'opy', 'ora', 'orc', 'ore', 'org', 'orh', 'orn', 'oro', 'orr', 'ors', 'ort', 'oru', 'orv', 'orw', 'orx', 'ory', 'orz', 'osa', 'osc', 'osi', 'oso', 'osp', 'ost', 'osu', 'osx', 'ota', 'otb', 'otd', 'ote', 'oti', 'otk', 'otl', 'otm', 'otn', 'oto', 'otq', 'otr', 'ots', 'ott', 'otu', 'otw', 'otx', 'oty', 'otz', 'oua', 'oub', 'oue', 'oui', 'oum', 'oun', 'ovd', 'owi', 'owl', 'oyb', 'oyd', 'oym', 'oyy', 'ozm', 'paa', 'pab', 'pac', 'pad', 'pae', 'paf', 'pag', 'pah', 'pai', 'pak', 'pal', 'pam', 'pao', 'pap', 'paq', 'par', 'pas', 'pat', 'pau', 'pav', 'paw', 'pax', 'pay', 'paz', 'pbb', 'pbc', 'pbe', 'pbf', 'pbg', 'pbh', 'pbi', 'pbl', 'pbm', 'pbn', 'pbo', 'pbp', 'pbr', 'pbs', 'pbt', 'pbu', 'pbv', 'pby', 'pbz', 'pca', 'pcb', 'pcc', 'pcd', 'pce', 'pcf', 'pcg', 'pch', 'pci', 'pcj', 'pck', 'pcl', 'pcm', 'pcn', 'pcp', 'pcr', 'pcw', 'pda', 'pdc', 'pdi', 'pdn', 'pdo', 'pdt', 'pdu', 'pea', 'peb', 'ped', 'pee', 'pef', 'peg', 'peh', 'pei', 'pej', 'pek', 'pel', 'pem', 'peo', 'pep', 'peq', 'pes', 'pev', 'pex', 'pey', 'pez', 'pfa', 'pfe', 'pfl', 'pga', 'pgd', 'pgg', 'pgi', 'pgk', 'pgl', 'pgn', 'pgs', 'pgu', 'pgy', 'pgz', 'pha', 'phd', 'phg', 'phh', 'phi', 'phk', 'phl', 'phm', 'phn', 'pho', 'phq', 'phr', 'pht', 'phu', 'phv', 'phw', 'pia', 'pib', 'pic', 'pid', 'pie', 'pif', 'pig', 'pih', 'pii', 'pij', 'pil', 'pim', 'pin', 'pio', 'pip', 'pir', 'pis', 'pit', 'piu', 'piv', 'piw', 'pix', 'piy', 'piz', 'pjt', 'pka', 'pkb', 'pkc', 'pkg', 'pkh', 'pkn', 'pko', 'pkp', 'pkr', 'pks', 'pkt', 'pku', 'pla', 'plb', 'plc', 'pld', 'ple', 'plf', 'plg', 'plh', 'plj', 'plk', 'pll', 'pln', 'plo', 'plp', 'plq', 'plr', 'pls', 'plt', 'plu', 'plv', 'plw', 'ply', 'plz', 'pma', 'pmb', 'pmc', 'pmd', 'pme', 'pmf', 'pmh', 'pmi', 'pmj', 'pmk', 'pml', 'pmm', 'pmn', 'pmo', 'pmq', 'pmr', 'pms', 'pmt', 'pmu', 'pmw', 'pmx', 'pmy', 'pmz', 'pna', 'pnb', 'pnc', 'pne', 'png', 'pnh', 'pni', 'pnj', 'pnk', 'pnl', 'pnm', 'pnn', 'pno', 'pnp', 'pnq', 'pnr', 'pns', 'pnt', 'pnu', 'pnv', 'pnw', 'pnx', 'pny', 'pnz', 'poc', 'pod', 'poe', 'pof', 'pog', 'poh', 'poi', 'pok', 'pom', 'pon', 'poo', 'pop', 'poq', 'pos', 'pot', 'pov', 'pow', 'pox', 'poy', 'poz', 'ppa', 'ppe', 'ppi', 'ppk', 'ppl', 'ppm', 'ppn', 'ppo', 'ppp', 'ppq', 'ppr', 'pps', 'ppt', 'ppu', 'pqa', 'pqe', 'pqm', 'pqw', 'pra', 'prb', 'prc', 'prd', 'pre', 'prf', 'prg', 'prh', 'pri', 'prk', 'prl', 'prm', 'prn', 'pro', 'prp', 'prq', 'prr', 'prs', 'prt', 'pru', 'prw', 'prx', 'pry', 'prz', 'psa', 'psc', 'psd', 'pse', 'psg', 'psh', 'psi', 'psl', 'psm', 'psn', 'pso', 'psp', 'psq', 'psr', 'pss', 'pst', 'psu', 'psw', 'psy', 'pta', 'pth', 'pti', 'ptn', 'pto', 'ptp', 'ptq', 'ptr', 'ptt', 'ptu', 'ptv', 'ptw', 'pty', 'pua', 'pub', 'puc', 'pud', 'pue', 'puf', 'pug', 'pui', 'puj', 'puk', 'pum', 'puo', 'pup', 'puq', 'pur', 'put', 'puu', 'puw', 'pux', 'puy', 'puz', 'pwa', 'pwb', 'pwg', 'pwi', 'pwm', 'pwn', 'pwo', 'pwr', 'pww', 'pxm', 'pye', 'pym', 'pyn', 'pys', 'pyu', 'pyx', 'pyy', 'pzn', 'qaa..qtz', 'qua', 'qub', 'quc', 'qud', 'quf', 'qug', 'quh', 'qui', 'quk', 'qul', 'qum', 'qun', 'qup', 'quq', 'qur', 'qus', 'quv', 'quw', 'qux', 'quy', 'quz', 'qva', 'qvc', 'qve', 'qvh', 'qvi', 'qvj', 'qvl', 'qvm', 'qvn', 'qvo', 'qvp', 'qvs', 'qvw', 'qvy', 'qvz', 'qwa', 'qwc', 'qwe', 'qwh', 'qwm', 'qws', 'qwt', 'qxa', 'qxc', 'qxh', 'qxl', 'qxn', 'qxo', 'qxp', 'qxq', 'qxr', 'qxs', 'qxt', 'qxu', 'qxw', 'qya', 'qyp', 'raa', 'rab', 'rac', 'rad', 'raf', 'rag', 'rah', 'rai', 'raj', 'rak', 'ral', 'ram', 'ran', 'rao', 'rap', 'raq', 'rar', 'ras', 'rat', 'rau', 'rav', 'raw', 'rax', 'ray', 'raz', 'rbb', 'rbk', 'rbl', 'rbp', 'rcf', 'rdb', 'rea', 'reb', 'ree', 'reg', 'rei', 'rej', 'rel', 'rem', 'ren', 'rer', 'res', 'ret', 'rey', 'rga', 'rge', 'rgk', 'rgn', 'rgr', 'rgs', 'rgu', 'rhg', 'rhp', 'ria', 'rie', 'rif', 'ril', 'rim', 'rin', 'rir', 'rit', 'riu', 'rjg', 'rji', 'rjs', 'rka', 'rkb', 'rkh', 'rki', 'rkm', 'rkt', 'rkw', 'rma', 'rmb', 'rmc', 'rmd', 'rme', 'rmf', 'rmg', 'rmh', 'rmi', 'rmk', 'rml', 'rmm', 'rmn', 'rmo', 'rmp', 'rmq', 'rmr', 'rms', 'rmt', 'rmu', 'rmv', 'rmw', 'rmx', 'rmy', 'rmz', 'rna', 'rnd', 'rng', 'rnl', 'rnn', 'rnp', 'rnr', 'rnw', 'roa', 'rob', 'roc', 'rod', 'roe', 'rof', 'rog', 'rol', 'rom', 'roo', 'rop', 'ror', 'rou', 'row', 'rpn', 'rpt', 'rri', 'rro', 'rrt', 'rsb', 'rsi', 'rsl', 'rsm', 'rtc', 'rth', 'rtm', 'rts', 'rtw', 'rub', 'ruc', 'rue', 'ruf', 'rug', 'ruh', 'rui', 'ruk', 'ruo', 'rup', 'ruq', 'rut', 'ruu', 'ruy', 'ruz', 'rwa', 'rwk', 'rwm', 'rwo', 'rwr', 'rxd', 'rxw', 'ryn', 'rys', 'ryu', 'rzh', 'saa', 'sab', 'sac', 'sad', 'sae', 'saf', 'sah', 'sai', 'saj', 'sak', 'sal', 'sam', 'sao', 'sap', 'saq', 'sar', 'sas', 'sat', 'sau', 'sav', 'saw', 'sax', 'say', 'saz', 'sba', 'sbb', 'sbc', 'sbd', 'sbe', 'sbf', 'sbg', 'sbh', 'sbi', 'sbj', 'sbk', 'sbl', 'sbm', 'sbn', 'sbo', 'sbp', 'sbq', 'sbr', 'sbs', 'sbt', 'sbu', 'sbv', 'sbw', 'sbx', 'sby', 'sbz', 'sca', 'scb', 'sce', 'scf', 'scg', 'sch', 'sci', 'sck', 'scl', 'scn', 'sco', 'scp', 'scq', 'scs', 'sct', 'scu', 'scv', 'scw', 'scx', 'sda', 'sdb', 'sdc', 'sde', 'sdf', 'sdg', 'sdh', 'sdj', 'sdk', 'sdl', 'sdm', 'sdn', 'sdo', 'sdp', 'sdr', 'sds', 'sdt', 'sdu', 'sdv', 'sdx', 'sdz', 'sea', 'seb', 'sec', 'sed', 'see', 'sef', 'seg', 'seh', 'sei', 'sej', 'sek', 'sel', 'sem', 'sen', 'seo', 'sep', 'seq', 'ser', 'ses', 'set', 'seu', 'sev', 'sew', 'sey', 'sez', 'sfb', 'sfe', 'sfm', 'sfs', 'sfw', 'sga', 'sgb', 'sgc', 'sgd', 'sge', 'sgg', 'sgh', 'sgi', 'sgj', 'sgk', 'sgl', 'sgm', 'sgn', 'sgo', 'sgp', 'sgr', 'sgs', 'sgt', 'sgu', 'sgw', 'sgx', 'sgy', 'sgz', 'sha', 'shb', 'shc', 'shd', 'she', 'shg', 'shh', 'shi', 'shj', 'shk', 'shl', 'shm', 'shn', 'sho', 'shp', 'shq', 'shr', 'shs', 'sht', 'shu', 'shv', 'shw', 'shx', 'shy', 'shz', 'sia', 'sib', 'sid', 'sie', 'sif', 'sig', 'sih', 'sii', 'sij', 'sik', 'sil', 'sim', 'sio', 'sip', 'siq', 'sir', 'sis', 'sit', 'siu', 'siv', 'siw', 'six', 'siy', 'siz', 'sja', 'sjb', 'sjd', 'sje', 'sjg', 'sjk', 'sjl', 'sjm', 'sjn', 'sjo', 'sjp', 'sjr', 'sjs', 'sjt', 'sju', 'sjw', 'ska', 'skb', 'skc', 'skd', 'ske', 'skf', 'skg', 'skh', 'ski', 'skj', 'skk', 'skm', 'skn', 'sko', 'skp', 'skq', 'skr', 'sks', 'skt', 'sku', 'skv', 'skw', 'skx', 'sky', 'skz', 'sla', 'slc', 'sld', 'sle', 'slf', 'slg', 'slh', 'sli', 'slj', 'sll', 'slm', 'sln', 'slp', 'slq', 'slr', 'sls', 'slt', 'slu', 'slw', 'slx', 'sly', 'slz', 'sma', 'smb', 'smc', 'smd', 'smf', 'smg', 'smh', 'smi', 'smj', 'smk', 'sml', 'smm', 'smn', 'smp', 'smq', 'smr', 'sms', 'smt', 'smu', 'smv', 'smw', 'smx', 'smy', 'smz', 'snb', 'snc', 'sne', 'snf', 'sng', 'snh', 'sni', 'snj', 'snk', 'snl', 'snm', 'snn', 'sno', 'snp', 'snq', 'snr', 'sns', 'snu', 'snv', 'snw', 'snx', 'sny', 'snz', 'soa', 'sob', 'soc', 'sod', 'soe', 'sog', 'soh', 'soi', 'soj', 'sok', 'sol', 'son', 'soo', 'sop', 'soq', 'sor', 'sos', 'sou', 'sov', 'sow', 'sox', 'soy', 'soz', 'spb', 'spc', 'spd', 'spe', 'spg', 'spi', 'spk', 'spl', 'spm', 'spn', 'spo', 'spp', 'spq', 'spr', 'sps', 'spt', 'spu', 'spv', 'spx', 'spy', 'sqa', 'sqh', 'sqj', 'sqk', 'sqm', 'sqn', 'sqo', 'sqq', 'sqr', 'sqs', 'sqt', 'squ', 'sra', 'srb', 'src', 'sre', 'srf', 'srg', 'srh', 'sri', 'srk', 'srl', 'srm', 'srn', 'sro', 'srq', 'srr', 'srs', 'srt', 'sru', 'srv', 'srw', 'srx', 'sry', 'srz', 'ssa', 'ssb', 'ssc', 'ssd', 'sse', 'ssf', 'ssg', 'ssh', 'ssi', 'ssj', 'ssk', 'ssl', 'ssm', 'ssn', 'sso', 'ssp', 'ssq', 'ssr', 'sss', 'sst', 'ssu', 'ssv', 'ssx', 'ssy', 'ssz', 'sta', 'stb', 'std', 'ste', 'stf', 'stg', 'sth', 'sti', 'stj', 'stk', 'stl', 'stm', 'stn', 'sto', 'stp', 'stq', 'str', 'sts', 'stt', 'stu', 'stv', 'stw', 'sty', 'sua', 'sub', 'suc', 'sue', 'sug', 'sui', 'suj', 'suk', 'sul', 'sum', 'suq', 'sur', 'sus', 'sut', 'suv', 'suw', 'sux', 'suy', 'suz', 'sva', 'svb', 'svc', 'sve', 'svk', 'svm', 'svr', 'svs', 'svx', 'swb', 'swc', 'swf', 'swg', 'swh', 'swi', 'swj', 'swk', 'swl', 'swm', 'swn', 'swo', 'swp', 'swq', 'swr', 'sws', 'swt', 'swu', 'swv', 'sww', 'swx', 'swy', 'sxb', 'sxc', 'sxe', 'sxg', 'sxk', 'sxl', 'sxm', 'sxn', 'sxo', 'sxr', 'sxs', 'sxu', 'sxw', 'sya', 'syb', 'syc', 'syd', 'syi', 'syk', 'syl', 'sym', 'syn', 'syo', 'syr', 'sys', 'syw', 'syx', 'syy', 'sza', 'szb', 'szc', 'szd', 'sze', 'szg', 'szl', 'szn', 'szp', 'szs', 'szv', 'szw', 'taa', 'tab', 'tac', 'tad', 'tae', 'taf', 'tag', 'tai', 'taj', 'tak', 'tal', 'tan', 'tao', 'tap', 'taq', 'tar', 'tas', 'tau', 'tav', 'taw', 'tax', 'tay', 'taz', 'tba', 'tbb', 'tbc', 'tbd', 'tbe', 'tbf', 'tbg', 'tbh', 'tbi', 'tbj', 'tbk', 'tbl', 'tbm', 'tbn', 'tbo', 'tbp', 'tbq', 'tbr', 'tbs', 'tbt', 'tbu', 'tbv', 'tbw', 'tbx', 'tby', 'tbz', 'tca', 'tcb', 'tcc', 'tcd', 'tce', 'tcf', 'tcg', 'tch', 'tci', 'tck', 'tcl', 'tcm', 'tcn', 'tco', 'tcp', 'tcq', 'tcs', 'tct', 'tcu', 'tcw', 'tcx', 'tcy', 'tcz', 'tda', 'tdb', 'tdc', 'tdd', 'tde', 'tdf', 'tdg', 'tdh', 'tdi', 'tdj', 'tdk', 'tdl', 'tdm', 'tdn', 'tdo', 'tdq', 'tdr', 'tds', 'tdt', 'tdu', 'tdv', 'tdx', 'tdy', 'tea', 'teb', 'tec', 'ted', 'tee', 'tef', 'teg', 'teh', 'tei', 'tek', 'tem', 'ten', 'teo', 'tep', 'teq', 'ter', 'tes', 'tet', 'teu', 'tev', 'tew', 'tex', 'tey', 'tez', 'tfi', 'tfn', 'tfo', 'tfr', 'tft', 'tga', 'tgb', 'tgc', 'tgd', 'tge', 'tgf', 'tgg', 'tgh', 'tgi', 'tgj', 'tgn', 'tgo', 'tgp', 'tgq', 'tgr', 'tgs', 'tgt', 'tgu', 'tgv', 'tgw', 'tgx', 'tgy', 'tgz', 'thc', 'thd', 'the', 'thf', 'thh', 'thi', 'thk', 'thl', 'thm', 'thn', 'thp', 'thq', 'thr', 'ths', 'tht', 'thu', 'thv', 'thw', 'thx', 'thy', 'thz', 'tia', 'tic', 'tid', 'tie', 'tif', 'tig', 'tih', 'tii', 'tij', 'tik', 'til', 'tim', 'tin', 'tio', 'tip', 'tiq', 'tis', 'tit', 'tiu', 'tiv', 'tiw', 'tix', 'tiy', 'tiz', 'tja', 'tjg', 'tji', 'tjl', 'tjm', 'tjn', 'tjo', 'tjs', 'tju', 'tjw', 'tka', 'tkb', 'tkd', 'tke', 'tkf', 'tkg', 'tkk', 'tkl', 'tkm', 'tkn', 'tkp', 'tkq', 'tkr', 'tks', 'tkt', 'tku', 'tkv', 'tkw', 'tkx', 'tkz', 'tla', 'tlb', 'tlc', 'tld', 'tlf', 'tlg', 'tlh', 'tli', 'tlj', 'tlk', 'tll', 'tlm', 'tln', 'tlo', 'tlp', 'tlq', 'tlr', 'tls', 'tlt', 'tlu', 'tlv', 'tlw', 'tlx', 'tly', 'tma', 'tmb', 'tmc', 'tmd', 'tme', 'tmf', 'tmg', 'tmh', 'tmi', 'tmj', 'tmk', 'tml', 'tmm', 'tmn', 'tmo', 'tmp', 'tmq', 'tmr', 'tms', 'tmt', 'tmu', 'tmv', 'tmw', 'tmy', 'tmz', 'tna', 'tnb', 'tnc', 'tnd', 'tne', 'tnf', 'tng', 'tnh', 'tni', 'tnk', 'tnl', 'tnm', 'tnn', 'tno', 'tnp', 'tnq', 'tnr', 'tns', 'tnt', 'tnu', 'tnv', 'tnw', 'tnx', 'tny', 'tnz', 'tob', 'toc', 'tod', 'toe', 'tof', 'tog', 'toh', 'toi', 'toj', 'tol', 'tom', 'too', 'top', 'toq', 'tor', 'tos', 'tou', 'tov', 'tow', 'tox', 'toy', 'toz', 'tpa', 'tpc', 'tpe', 'tpf', 'tpg', 'tpi', 'tpj', 'tpk', 'tpl', 'tpm', 'tpn', 'tpo', 'tpp', 'tpq', 'tpr', 'tpt', 'tpu', 'tpv', 'tpw', 'tpx', 'tpy', 'tpz', 'tqb', 'tql', 'tqm', 'tqn', 'tqo', 'tqp', 'tqq', 'tqr', 'tqt', 'tqu', 'tqw', 'tra', 'trb', 'trc', 'trd', 'tre', 'trf', 'trg', 'trh', 'tri', 'trj', 'trk', 'trl', 'trm', 'trn', 'tro', 'trp', 'trq', 'trr', 'trs', 'trt', 'tru', 'trv', 'trw', 'trx', 'try', 'trz', 'tsa', 'tsb', 'tsc', 'tsd', 'tse', 'tsf', 'tsg', 'tsh', 'tsi', 'tsj', 'tsk', 'tsl', 'tsm', 'tsp', 'tsq', 'tsr', 'tss', 'tst', 'tsu', 'tsv', 'tsw', 'tsx', 'tsy', 'tsz', 'tta', 'ttb', 'ttc', 'ttd', 'tte', 'ttf', 'ttg', 'tth', 'tti', 'ttj', 'ttk', 'ttl', 'ttm', 'ttn', 'tto', 'ttp', 'ttq', 'ttr', 'tts', 'ttt', 'ttu', 'ttv', 'ttw', 'tty', 'ttz', 'tua', 'tub', 'tuc', 'tud', 'tue', 'tuf', 'tug', 'tuh', 'tui', 'tuj', 'tul', 'tum', 'tun', 'tuo', 'tup', 'tuq', 'tus', 'tut', 'tuu', 'tuv', 'tuw', 'tux', 'tuy', 'tuz', 'tva', 'tvd', 'tve', 'tvk', 'tvl', 'tvm', 'tvn', 'tvo', 'tvs', 'tvt', 'tvu', 'tvw', 'tvy', 'twa', 'twb', 'twc', 'twd', 'twe', 'twf', 'twg', 'twh', 'twl', 'twm', 'twn', 'two', 'twp', 'twq', 'twr', 'twt', 'twu', 'tww', 'twx', 'twy', 'txa', 'txb', 'txc', 'txe', 'txg', 'txh', 'txi', 'txj', 'txm', 'txn', 'txo', 'txq', 'txr', 'txs', 'txt', 'txu', 'txx', 'txy', 'tya', 'tye', 'tyh', 'tyi', 'tyj', 'tyl', 'tyn', 'typ', 'tyr', 'tys', 'tyt', 'tyu', 'tyv', 'tyx', 'tyz', 'tza', 'tzh', 'tzj', 'tzl', 'tzm', 'tzn', 'tzo', 'tzx', 'uam', 'uan', 'uar', 'uba', 'ubi', 'ubl', 'ubr', 'ubu', 'uby', 'uda', 'ude', 'udg', 'udi', 'udj', 'udl', 'udm', 'udu', 'ues', 'ufi', 'uga', 'ugb', 'uge', 'ugn', 'ugo', 'ugy', 'uha', 'uhn', 'uis', 'uiv', 'uji', 'uka', 'ukg', 'ukh', 'ukk', 'ukl', 'ukp', 'ukq', 'uks', 'uku', 'ukw', 'uky', 'ula', 'ulb', 'ulc', 'ule', 'ulf', 'uli', 'ulk', 'ull', 'ulm', 'uln', 'ulu', 'ulw', 'uma', 'umb', 'umc', 'umd', 'umg', 'umi', 'umm', 'umn', 'umo', 'ump', 'umr', 'ums', 'umu', 'una', 'und', 'une', 'ung', 'unk', 'unm', 'unn', 'unp', 'unr', 'unu', 'unx', 'unz', 'uok', 'upi', 'upv', 'ura', 'urb', 'urc', 'ure', 'urf', 'urg', 'urh', 'uri', 'urj', 'urk', 'url', 'urm', 'urn', 'uro', 'urp', 'urr', 'urt', 'uru', 'urv', 'urw', 'urx', 'ury', 'urz', 'usa', 'ush', 'usi', 'usk', 'usp', 'usu', 'uta', 'ute', 'utp', 'utr', 'utu', 'uum', 'uun', 'uur', 'uuu', 'uve', 'uvh', 'uvl', 'uwa', 'uya', 'uzn', 'uzs', 'vaa', 'vae', 'vaf', 'vag', 'vah', 'vai', 'vaj', 'val', 'vam', 'van', 'vao', 'vap', 'var', 'vas', 'vau', 'vav', 'vay', 'vbb', 'vbk', 'vec', 'ved', 'vel', 'vem', 'veo', 'vep', 'ver', 'vgr', 'vgt', 'vic', 'vid', 'vif', 'vig', 'vil', 'vin', 'vis', 'vit', 'viv', 'vka', 'vki', 'vkj', 'vkk', 'vkl', 'vkm', 'vko', 'vkp', 'vkt', 'vku', 'vlp', 'vls', 'vma', 'vmb', 'vmc', 'vmd', 'vme', 'vmf', 'vmg', 'vmh', 'vmi', 'vmj', 'vmk', 'vml', 'vmm', 'vmp', 'vmq', 'vmr', 'vms', 'vmu', 'vmv', 'vmw', 'vmx', 'vmy', 'vmz', 'vnk', 'vnm', 'vnp', 'vor', 'vot', 'vra', 'vro', 'vrs', 'vrt', 'vsi', 'vsl', 'vsv', 'vto', 'vum', 'vun', 'vut', 'vwa', 'waa', 'wab', 'wac', 'wad', 'wae', 'waf', 'wag', 'wah', 'wai', 'waj', 'wak', 'wal', 'wam', 'wan', 'wao', 'wap', 'waq', 'war', 'was', 'wat', 'wau', 'wav', 'waw', 'wax', 'way', 'waz', 'wba', 'wbb', 'wbe', 'wbf', 'wbh', 'wbi', 'wbj', 'wbk', 'wbl', 'wbm', 'wbp', 'wbq', 'wbr', 'wbs', 'wbt', 'wbv', 'wbw', 'wca', 'wci', 'wdd', 'wdg', 'wdj', 'wdk', 'wdu', 'wdy', 'wea', 'wec', 'wed', 'weg', 'weh', 'wei', 'wem', 'wen', 'weo', 'wep', 'wer', 'wes', 'wet', 'weu', 'wew', 'wfg', 'wga', 'wgb', 'wgg', 'wgi', 'wgo', 'wgu', 'wgw', 'wgy', 'wha', 'whg', 'whk', 'whu', 'wib', 'wic', 'wie', 'wif', 'wig', 'wih', 'wii', 'wij', 'wik', 'wil', 'wim', 'win', 'wir', 'wit', 'wiu', 'wiv', 'wiw', 'wiy', 'wja', 'wji', 'wka', 'wkb', 'wkd', 'wkl', 'wku', 'wkw', 'wky', 'wla', 'wlc', 'wle', 'wlg', 'wli', 'wlk', 'wll', 'wlm', 'wlo', 'wlr', 'wls', 'wlu', 'wlv', 'wlw', 'wlx', 'wly', 'wma', 'wmb', 'wmc', 'wmd', 'wme', 'wmh', 'wmi', 'wmm', 'wmn', 'wmo', 'wms', 'wmt', 'wmw', 'wmx', 'wnb', 'wnc', 'wnd', 'wne', 'wng', 'wni', 'wnk', 'wnm', 'wnn', 'wno', 'wnp', 'wnu', 'wnw', 'wny', 'woa', 'wob', 'woc', 'wod', 'woe', 'wof', 'wog', 'woi', 'wok', 'wom', 'won', 'woo', 'wor', 'wos', 'wow', 'woy', 'wpc', 'wra', 'wrb', 'wrd', 'wrg', 'wrh', 'wri', 'wrk', 'wrl', 'wrm', 'wrn', 'wro', 'wrp', 'wrr', 'wrs', 'wru', 'wrv', 'wrw', 'wrx', 'wry', 'wrz', 'wsa', 'wsg', 'wsi', 'wsk', 'wsr', 'wss', 'wsu', 'wsv', 'wtf', 'wth', 'wti', 'wtk', 'wtm', 'wtw', 'wua', 'wub', 'wud', 'wuh', 'wul', 'wum', 'wun', 'wur', 'wut', 'wuu', 'wuv', 'wux', 'wuy', 'wwa', 'wwb', 'wwo', 'wwr', 'www', 'wxa', 'wxw', 'wya', 'wyb', 'wyi', 'wym', 'wyr', 'wyy', 'xaa', 'xab', 'xac', 'xad', 'xae', 'xag', 'xai', 'xaj', 'xak', 'xal', 'xam', 'xan', 'xao', 'xap', 'xaq', 'xar', 'xas', 'xat', 'xau', 'xav', 'xaw', 'xay', 'xba', 'xbb', 'xbc', 'xbd', 'xbe', 'xbg', 'xbi', 'xbj', 'xbm', 'xbn', 'xbo', 'xbp', 'xbr', 'xbw', 'xbx', 'xby', 'xcb', 'xcc', 'xce', 'xcg', 'xch', 'xcl', 'xcm', 'xcn', 'xco', 'xcr', 'xct', 'xcu', 'xcv', 'xcw', 'xcy', 'xda', 'xdc', 'xdk', 'xdm', 'xdo', 'xdy', 'xeb', 'xed', 'xeg', 'xel', 'xem', 'xep', 'xer', 'xes', 'xet', 'xeu', 'xfa', 'xga', 'xgb', 'xgd', 'xgf', 'xgg', 'xgi', 'xgl', 'xgm', 'xgn', 'xgr', 'xgu', 'xgw', 'xha', 'xhc', 'xhd', 'xhe', 'xhr', 'xht', 'xhu', 'xhv', 'xia', 'xib', 'xii', 'xil', 'xin', 'xip', 'xir', 'xis', 'xiv', 'xiy', 'xjb', 'xjt', 'xka', 'xkb', 'xkc', 'xkd', 'xke', 'xkf', 'xkg', 'xkh', 'xki', 'xkj', 'xkk', 'xkl', 'xkn', 'xko', 'xkp', 'xkq', 'xkr', 'xks', 'xkt', 'xku', 'xkv', 'xkw', 'xkx', 'xky', 'xkz', 'xla', 'xlb', 'xlc', 'xld', 'xle', 'xlg', 'xli', 'xln', 'xlo', 'xlp', 'xls', 'xlu', 'xly', 'xma', 'xmb', 'xmc', 'xmd', 'xme', 'xmf', 'xmg', 'xmh', 'xmj', 'xmk', 'xml', 'xmm', 'xmn', 'xmo', 'xmp', 'xmq', 'xmr', 'xms', 'xmt', 'xmu', 'xmv', 'xmw', 'xmx', 'xmy', 'xmz', 'xna', 'xnb', 'xnd', 'xng', 'xnh', 'xni', 'xnk', 'xnn', 'xno', 'xnr', 'xns', 'xnt', 'xnu', 'xny', 'xnz', 'xoc', 'xod', 'xog', 'xoi', 'xok', 'xom', 'xon', 'xoo', 'xop', 'xor', 'xow', 'xpa', 'xpc', 'xpe', 'xpg', 'xpi', 'xpj', 'xpk', 'xpm', 'xpn', 'xpo', 'xpp', 'xpq', 'xpr', 'xps', 'xpt', 'xpu', 'xpy', 'xqa', 'xqt', 'xra', 'xrb', 'xrd', 'xre', 'xrg', 'xri', 'xrm', 'xrn', 'xrq', 'xrr', 'xrt', 'xru', 'xrw', 'xsa', 'xsb', 'xsc', 'xsd', 'xse', 'xsh', 'xsi', 'xsj', 'xsl', 'xsm', 'xsn', 'xso', 'xsp', 'xsq', 'xsr', 'xss', 'xsu', 'xsv', 'xsy', 'xta', 'xtb', 'xtc', 'xtd', 'xte', 'xtg', 'xth', 'xti', 'xtj', 'xtl', 'xtm', 'xtn', 'xto', 'xtp', 'xtq', 'xtr', 'xts', 'xtt', 'xtu', 'xtv', 'xtw', 'xty', 'xtz', 'xua', 'xub', 'xud', 'xug', 'xuj', 'xul', 'xum', 'xun', 'xuo', 'xup', 'xur', 'xut', 'xuu', 'xve', 'xvi', 'xvn', 'xvo', 'xvs', 'xwa', 'xwc', 'xwd', 'xwe', 'xwg', 'xwj', 'xwk', 'xwl', 'xwo', 'xwr', 'xwt', 'xww', 'xxb', 'xxk', 'xxm', 'xxr', 'xxt', 'xya', 'xyb', 'xyj', 'xyk', 'xyl', 'xyt', 'xyy', 'xzh', 'xzm', 'xzp', 'yaa', 'yab', 'yac', 'yad', 'yae', 'yaf', 'yag', 'yah', 'yai', 'yaj', 'yak', 'yal', 'yam', 'yan', 'yao', 'yap', 'yaq', 'yar', 'yas', 'yat', 'yau', 'yav', 'yaw', 'yax', 'yay', 'yaz', 'yba', 'ybb', 'ybd', 'ybe', 'ybh', 'ybi', 'ybj', 'ybk', 'ybl', 'ybm', 'ybn', 'ybo', 'ybx', 'yby', 'ych', 'ycl', 'ycn', 'ycp', 'yda', 'ydd', 'yde', 'ydg', 'ydk', 'yds', 'yea', 'yec', 'yee', 'yei', 'yej', 'yel', 'yen', 'yer', 'yes', 'yet', 'yeu', 'yev', 'yey', 'yga', 'ygi', 'ygl', 'ygm', 'ygp', 'ygr', 'ygs', 'ygu', 'ygw', 'yha', 'yhd', 'yhl', 'yhs', 'yia', 'yif', 'yig', 'yih', 'yii', 'yij', 'yik', 'yil', 'yim', 'yin', 'yip', 'yiq', 'yir', 'yis', 'yit', 'yiu', 'yiv', 'yix', 'yiy', 'yiz', 'yka', 'ykg', 'yki', 'ykk', 'ykl', 'ykm', 'ykn', 'yko', 'ykr', 'ykt', 'yku', 'yky', 'yla', 'ylb', 'yle', 'ylg', 'yli', 'yll', 'ylm', 'yln', 'ylo', 'ylr', 'ylu', 'yly', 'yma', 'ymb', 'ymc', 'ymd', 'yme', 'ymg', 'ymh', 'ymi', 'ymk', 'yml', 'ymm', 'ymn', 'ymo', 'ymp', 'ymq', 'ymr', 'yms', 'ymt', 'ymx', 'ymz', 'yna', 'ynd', 'yne', 'yng', 'ynh', 'ynk', 'ynl', 'ynn', 'yno', 'ynq', 'yns', 'ynu', 'yob', 'yog', 'yoi', 'yok', 'yol', 'yom', 'yon', 'yos', 'yot', 'yox', 'yoy', 'ypa', 'ypb', 'ypg', 'yph', 'ypk', 'ypm', 'ypn', 'ypo', 'ypp', 'ypz', 'yra', 'yrb', 'yre', 'yri', 'yrk', 'yrl', 'yrm', 'yrn', 'yro', 'yrs', 'yrw', 'yry', 'ysc', 'ysd', 'ysg', 'ysl', 'ysn', 'yso', 'ysp', 'ysr', 'yss', 'ysy', 'yta', 'ytl', 'ytp', 'ytw', 'yty', 'yua', 'yub', 'yuc', 'yud', 'yue', 'yuf', 'yug', 'yui', 'yuj', 'yuk', 'yul', 'yum', 'yun', 'yup', 'yuq', 'yur', 'yut', 'yuu', 'yuw', 'yux', 'yuy', 'yuz', 'yva', 'yvt', 'ywa', 'ywg', 'ywl', 'ywn', 'ywq', 'ywr', 'ywt', 'ywu', 'yww', 'yxa', 'yxg', 'yxl', 'yxm', 'yxu', 'yxy', 'yyr', 'yyu', 'yyz', 'yzg', 'yzk', 'zaa', 'zab', 'zac', 'zad', 'zae', 'zaf', 'zag', 'zah', 'zai', 'zaj', 'zak', 'zal', 'zam', 'zao', 'zap', 'zaq', 'zar', 'zas', 'zat', 'zau', 'zav', 'zaw', 'zax', 'zay', 'zaz', 'zbc', 'zbe', 'zbl', 'zbt', 'zbw', 'zca', 'zch', 'zdj', 'zea', 'zeg', 'zeh', 'zen', 'zga', 'zgb', 'zgh', 'zgm', 'zgn', 'zgr', 'zhb', 'zhd', 'zhi', 'zhn', 'zhw', 'zhx', 'zia', 'zib', 'zik', 'zil', 'zim', 'zin', 'zir', 'ziw', 'ziz', 'zka', 'zkb', 'zkd', 'zkg', 'zkh', 'zkk', 'zkn', 'zko', 'zkp', 'zkr', 'zkt', 'zku', 'zkv', 'zkz', 'zle', 'zlj', 'zlm', 'zln', 'zlq', 'zls', 'zlw', 'zma', 'zmb', 'zmc', 'zmd', 'zme', 'zmf', 'zmg', 'zmh', 'zmi', 'zmj', 'zmk', 'zml', 'zmm', 'zmn', 'zmo', 'zmp', 'zmq', 'zmr', 'zms', 'zmt', 'zmu', 'zmv', 'zmw', 'zmx', 'zmy', 'zmz', 'zna', 'znd', 'zne', 'zng', 'znk', 'zns', 'zoc', 'zoh', 'zom', 'zoo', 'zoq', 'zor', 'zos', 'zpa', 'zpb', 'zpc', 'zpd', 'zpe', 'zpf', 'zpg', 'zph', 'zpi', 'zpj', 'zpk', 'zpl', 'zpm', 'zpn', 'zpo', 'zpp', 'zpq', 'zpr', 'zps', 'zpt', 'zpu', 'zpv', 'zpw', 'zpx', 'zpy', 'zpz', 'zqe', 'zra', 'zrg', 'zrn', 'zro', 'zrp', 'zrs', 'zsa', 'zsk', 'zsl', 'zsm', 'zsr', 'zsu', 'zte', 'ztg', 'ztl', 'ztm', 'ztn', 'ztp', 'ztq', 'zts', 'ztt', 'ztu', 'ztx', 'zty', 'zua', 'zuh', 'zum', 'zun', 'zuy', 'zwa', 'zxx', 'zyb', 'zyg', 'zyj', 'zyn', 'zyp', 'zza', 'zzj'];\n\n axe.utils.validLangs = function () {\n 'use strict';\n\n return langs;\n };\n\n 'use strict';\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance');\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === '[object Arguments]') {\n return Array.from(iter);\n }\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === '[object Arguments]')) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) {\n break;\n }\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) {\n _i['return']();\n }\n } finally {\n if (_d) {\n throw _e;\n }\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) {\n return arr;\n }\n }\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n axe._load({\n lang: 'en',\n data: {\n rules: {\n accesskeys: {\n description: 'Ensures every accesskey attribute value is unique',\n help: 'accesskey attribute value must be unique'\n },\n 'area-alt': {\n description: 'Ensures <area> elements of image maps have alternate text',\n help: 'Active <area> elements must have alternate text'\n },\n 'aria-allowed-attr': {\n description: 'Ensures ARIA attributes are allowed for an element\\'s role',\n help: 'Elements must only use allowed ARIA attributes'\n },\n 'aria-allowed-role': {\n description: 'Ensures role attribute has an appropriate value for the element',\n help: 'ARIA role must be appropriate for the element'\n },\n 'aria-dpub-role-fallback': {\n description: 'Ensures unsupported DPUB roles are only used on elements with implicit fallback roles',\n help: 'Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles'\n },\n 'aria-hidden-body': {\n description: 'Ensures aria-hidden=\\'true\\' is not present on the document body.',\n help: 'aria-hidden=\\'true\\' must not be present on the document body'\n },\n 'aria-hidden-focus': {\n description: 'Ensures aria-hidden elements do not contain focusable elements',\n help: 'ARIA hidden element must not contain focusable elements'\n },\n 'aria-input-field-name': {\n description: 'Ensures every ARIA input field has an accessible name',\n help: 'ARIA input fields must have an accessible name'\n },\n 'aria-required-attr': {\n description: 'Ensures elements with ARIA roles have all required ARIA attributes',\n help: 'Required ARIA attributes must be provided'\n },\n 'aria-required-children': {\n description: 'Ensures elements with an ARIA role that require child roles contain them',\n help: 'Certain ARIA roles must contain particular children'\n },\n 'aria-required-parent': {\n description: 'Ensures elements with an ARIA role that require parent roles are contained by them',\n help: 'Certain ARIA roles must be contained by particular parents'\n },\n 'aria-roledescription': {\n description: 'Ensure aria-roledescription is only used on elements with an implicit or explicit role',\n help: 'Use aria-roledescription on elements with a semantic role'\n },\n 'aria-roles': {\n description: 'Ensures all elements with a role attribute use a valid value',\n help: 'ARIA roles used must conform to valid values'\n },\n 'aria-toggle-field-name': {\n description: 'Ensures every ARIA toggle field has an accessible name',\n help: 'ARIA toggle fields have an accessible name'\n },\n 'aria-valid-attr-value': {\n description: 'Ensures all ARIA attributes have valid values',\n help: 'ARIA attributes must conform to valid values'\n },\n 'aria-valid-attr': {\n description: 'Ensures attributes that begin with aria- are valid ARIA attributes',\n help: 'ARIA attributes must conform to valid names'\n },\n 'audio-caption': {\n description: 'Ensures <audio> elements have captions',\n help: '<audio> elements must have a captions track'\n },\n 'autocomplete-valid': {\n description: 'Ensure the autocomplete attribute is correct and suitable for the form field',\n help: 'autocomplete attribute must be used correctly'\n },\n 'avoid-inline-spacing': {\n description: 'Ensure that text spacing set through style attributes can be adjusted with custom stylesheets',\n help: 'Inline text spacing must be adjustable with custom stylesheets'\n },\n blink: {\n description: 'Ensures <blink> elements are not used',\n help: '<blink> elements are deprecated and must not be used'\n },\n 'button-name': {\n description: 'Ensures buttons have discernible text',\n help: 'Buttons must have discernible text'\n },\n bypass: {\n description: 'Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content',\n help: 'Page must have means to bypass repeated blocks'\n },\n checkboxgroup: {\n description: 'Ensures related <input type=\"checkbox\"> elements have a group and that the group designation is consistent',\n help: 'Checkbox inputs with the same name attribute value must be part of a group'\n },\n 'color-contrast': {\n description: 'Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds',\n help: 'Elements must have sufficient color contrast'\n },\n 'css-orientation-lock': {\n description: 'Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations',\n help: 'CSS Media queries are not used to lock display orientation'\n },\n 'definition-list': {\n description: 'Ensures <dl> elements are structured correctly',\n help: '<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements'\n },\n dlitem: {\n description: 'Ensures <dt> and <dd> elements are contained by a <dl>',\n help: '<dt> and <dd> elements must be contained by a <dl>'\n },\n 'document-title': {\n description: 'Ensures each HTML document contains a non-empty <title> element',\n help: 'Documents must have <title> element to aid in navigation'\n },\n 'duplicate-id-active': {\n description: 'Ensures every id attribute value of active elements is unique',\n help: 'IDs of active elements must be unique'\n },\n 'duplicate-id-aria': {\n description: 'Ensures every id attribute value used in ARIA and in labels is unique',\n help: 'IDs used in ARIA and labels must be unique'\n },\n 'duplicate-id': {\n description: 'Ensures every id attribute value is unique',\n help: 'id attribute value must be unique'\n },\n 'empty-heading': {\n description: 'Ensures headings have discernible text',\n help: 'Headings must not be empty'\n },\n 'focus-order-semantics': {\n description: 'Ensures elements in the focus order have an appropriate role',\n help: 'Elements in the focus order need a role appropriate for interactive content'\n },\n 'form-field-multiple-labels': {\n description: 'Ensures form field does not have multiple label elements',\n help: 'Form field should not have multiple label elements'\n },\n 'frame-tested': {\n description: 'Ensures <iframe> and <frame> elements contain the axe-core script',\n help: 'Frames must be tested with axe-core'\n },\n 'frame-title-unique': {\n description: 'Ensures <iframe> and <frame> elements contain a unique title attribute',\n help: 'Frames must have a unique title attribute'\n },\n 'frame-title': {\n description: 'Ensures <iframe> and <frame> elements contain a non-empty title attribute',\n help: 'Frames must have title attribute'\n },\n 'heading-order': {\n description: 'Ensures the order of headings is semantically correct',\n help: 'Heading levels should only increase by one'\n },\n 'hidden-content': {\n description: 'Informs users about hidden content.',\n help: 'Hidden content on the page cannot be analyzed'\n },\n 'html-has-lang': {\n description: 'Ensures every HTML document has a lang attribute',\n help: '<html> element must have a lang attribute'\n },\n 'html-lang-valid': {\n description: 'Ensures the lang attribute of the <html> element has a valid value',\n help: '<html> element must have a valid value for the lang attribute'\n },\n 'html-xml-lang-mismatch': {\n description: 'Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page',\n help: 'HTML elements with lang and xml:lang must have the same base language'\n },\n 'identical-links-same-purpose': {\n description: 'Ensure that links with the same accessible name serve a similar purpose',\n help: 'Links with the same name have a similar purpose'\n },\n 'image-alt': {\n description: 'Ensures <img> elements have alternate text or a role of none or presentation',\n help: 'Images must have alternate text'\n },\n 'image-redundant-alt': {\n description: 'Ensure image alternative is not repeated as text',\n help: 'Alternative text of images should not be repeated as text'\n },\n 'input-button-name': {\n description: 'Ensures input buttons have discernible text',\n help: 'Input buttons must have discernible text'\n },\n 'input-image-alt': {\n description: 'Ensures <input type=\"image\"> elements have alternate text',\n help: 'Image buttons must have alternate text'\n },\n 'label-content-name-mismatch': {\n description: 'Ensures that elements labelled through their content must have their visible text as part of their accessible name',\n help: 'Elements must have their visible text as part of their accessible name'\n },\n 'label-title-only': {\n description: 'Ensures that every form element is not solely labeled using the title or aria-describedby attributes',\n help: 'Form elements should have a visible label'\n },\n label: {\n description: 'Ensures every form element has a label',\n help: 'Form elements must have labels'\n },\n 'landmark-banner-is-top-level': {\n description: 'Ensures the banner landmark is at top level',\n help: 'Banner landmark must not be contained in another landmark'\n },\n 'landmark-complementary-is-top-level': {\n description: 'Ensures the complementary landmark or aside is at top level',\n help: 'Aside must not be contained in another landmark'\n },\n 'landmark-contentinfo-is-top-level': {\n description: 'Ensures the contentinfo landmark is at top level',\n help: 'Contentinfo landmark must not be contained in another landmark'\n },\n 'landmark-main-is-top-level': {\n description: 'Ensures the main landmark is at top level',\n help: 'Main landmark must not be contained in another landmark'\n },\n 'landmark-no-duplicate-banner': {\n description: 'Ensures the document has at most one banner landmark',\n help: 'Document must not have more than one banner landmark'\n },\n 'landmark-no-duplicate-contentinfo': {\n description: 'Ensures the document has at most one contentinfo landmark',\n help: 'Document must not have more than one contentinfo landmark'\n },\n 'landmark-no-duplicate-main': {\n description: 'Ensures the document has at most one main landmark',\n help: 'Document must not have more than one main landmark'\n },\n 'landmark-one-main': {\n description: 'Ensures the document has a main landmark',\n help: 'Document must have one main landmark'\n },\n 'landmark-unique': {\n help: 'Ensures landmarks are unique',\n description: 'Landmarks must have a unique role or role/label/title (i.e. accessible name) combination'\n },\n 'layout-table': {\n description: 'Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute',\n help: 'Layout tables must not use data table elements'\n },\n 'link-in-text-block': {\n description: 'Links can be distinguished without relying on color',\n help: 'Links must be distinguished from surrounding text in a way that does not rely on color'\n },\n 'link-name': {\n description: 'Ensures links have discernible text',\n help: 'Links must have discernible text'\n },\n list: {\n description: 'Ensures that lists are structured correctly',\n help: '<ul> and <ol> must only directly contain <li>, <script> or <template> elements'\n },\n listitem: {\n description: 'Ensures <li> elements are used semantically',\n help: '<li> elements must be contained in a <ul> or <ol>'\n },\n marquee: {\n description: 'Ensures <marquee> elements are not used',\n help: '<marquee> elements are deprecated and must not be used'\n },\n 'meta-refresh': {\n description: 'Ensures <meta http-equiv=\"refresh\"> is not used',\n help: 'Timed refresh must not exist'\n },\n 'meta-viewport-large': {\n description: 'Ensures <meta name=\"viewport\"> can scale a significant amount',\n help: 'Users should be able to zoom and scale the text up to 500%'\n },\n 'meta-viewport': {\n description: 'Ensures <meta name=\"viewport\"> does not disable text scaling and zooming',\n help: 'Zooming and scaling must not be disabled'\n },\n 'no-autoplay-audio': {\n description: 'Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio',\n help: '<video> or <audio> elements do not autoplay audio'\n },\n 'object-alt': {\n description: 'Ensures <object> elements have alternate text',\n help: '<object> elements must have alternate text'\n },\n 'p-as-heading': {\n description: 'Ensure p elements are not used to style headings',\n help: 'Bold, italic text and font-size are not used to style p elements as a heading'\n },\n 'page-has-heading-one': {\n description: 'Ensure that the page, or at least one of its frames contains a level-one heading',\n help: 'Page must contain a level-one heading'\n },\n radiogroup: {\n description: 'Ensures related <input type=\"radio\"> elements have a group and that the group designation is consistent',\n help: 'Radio inputs with the same name attribute value must be part of a group'\n },\n region: {\n description: 'Ensures all page content is contained by landmarks',\n help: 'All page content must be contained by landmarks'\n },\n 'role-img-alt': {\n description: 'Ensures [role=\\'img\\'] elements have alternate text',\n help: '[role=\\'img\\'] elements have an alternative text'\n },\n 'scope-attr-valid': {\n description: 'Ensures the scope attribute is used correctly on tables',\n help: 'scope attribute should be used correctly'\n },\n 'scrollable-region-focusable': {\n description: 'Elements that have scrollable content should be accessible by keyboard',\n help: 'Ensure that scrollable region has keyboard access'\n },\n 'server-side-image-map': {\n description: 'Ensures that server-side image maps are not used',\n help: 'Server-side image maps must not be used'\n },\n 'skip-link': {\n description: 'Ensure all skip links have a focusable target',\n help: 'The skip-link target should exist and be focusable'\n },\n 'svg-img-alt': {\n description: 'Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text',\n help: 'svg elements with an img role have an alternative text'\n },\n tabindex: {\n description: 'Ensures tabindex attribute values are not greater than 0',\n help: 'Elements should not have tabindex greater than zero'\n },\n 'table-duplicate-name': {\n description: 'Ensure that tables do not have the same summary and caption',\n help: 'The <caption> element should not contain the same text as the summary attribute'\n },\n 'table-fake-caption': {\n description: 'Ensure that tables with a caption use the <caption> element.',\n help: 'Data or header cells should not be used to give caption to a data table.'\n },\n 'td-has-header': {\n description: 'Ensure that each non-empty data cell in a large table has one or more table headers',\n help: 'All non-empty td element in table larger than 3 by 3 must have an associated table header'\n },\n 'td-headers-attr': {\n description: 'Ensure that each cell in a table using the headers refers to another cell in that table',\n help: 'All cells in a table element that use the headers attribute must only refer to other cells of that same table'\n },\n 'th-has-data-cells': {\n description: 'Ensure that each table header in a data table refers to data cells',\n help: 'All th elements and elements with role=columnheader/rowheader must have data cells they describe'\n },\n 'valid-lang': {\n description: 'Ensures lang attributes have valid values',\n help: 'lang attribute must have a valid value'\n },\n 'video-caption': {\n description: 'Ensures <video> elements have captions',\n help: '<video> elements must have captions'\n },\n 'video-description': {\n description: 'Ensures <video> elements have audio descriptions',\n help: '<video> elements must have an audio description track'\n }\n },\n checks: {\n accesskeys: {\n impact: 'serious',\n messages: {\n pass: 'Accesskey attribute value is unique',\n fail: 'Document has multiple elements with the same accesskey'\n }\n },\n 'non-empty-alt': {\n impact: 'critical',\n messages: {\n pass: 'Element has a non-empty alt attribute',\n fail: 'Element has no alt attribute or the alt attribute is empty'\n }\n },\n 'non-empty-title': {\n impact: 'serious',\n messages: {\n pass: 'Element has a title attribute',\n fail: 'Element has no title attribute or the title attribute is empty'\n }\n },\n 'aria-label': {\n impact: 'serious',\n messages: {\n pass: 'aria-label attribute exists and is not empty',\n fail: 'aria-label attribute does not exist or is empty'\n }\n },\n 'aria-labelledby': {\n impact: 'serious',\n messages: {\n pass: 'aria-labelledby attribute exists and references elements that are visible to screen readers',\n fail: 'aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty'\n }\n },\n 'aria-allowed-attr': {\n impact: 'critical',\n messages: {\n pass: 'ARIA attributes are used correctly for the defined role',\n fail: {\n singular: 'ARIA attribute is not allowed: ${data.values}',\n plural: 'ARIA attributes are not allowed: ${data.values}'\n }\n }\n },\n 'aria-unsupported-attr': {\n impact: 'critical',\n messages: {\n pass: 'ARIA attribute is supported',\n fail: 'ARIA attribute is not widely supported in screen readers and assistive technologies: ${data.values}'\n }\n },\n 'aria-allowed-role': {\n impact: 'minor',\n messages: {\n pass: 'ARIA role is allowed for given element',\n fail: {\n singular: 'ARIA role ${data.values} is not allowed for given element',\n plural: 'ARIA roles ${data.values} are not allowed for given element'\n },\n incomplete: {\n singular: 'ARIA role ${data.values} must be removed when the element is made visible, as it is not allowed for the element',\n plural: 'ARIA roles ${data.values} must be removed when the element is made visible, as they are not allowed for the element'\n }\n }\n },\n 'implicit-role-fallback': {\n impact: 'moderate',\n messages: {\n pass: \"Element\\u2019s implicit ARIA role is an appropriate fallback\",\n fail: \"Element\\u2019s implicit ARIA role is not a good fallback for the (unsupported) role\"\n }\n },\n 'aria-hidden-body': {\n impact: 'critical',\n messages: {\n pass: 'No aria-hidden attribute is present on document body',\n fail: 'aria-hidden=true should not be present on the document body'\n }\n },\n 'focusable-modal-open': {\n impact: 'serious',\n messages: {\n pass: 'No focusable elements while a modal is open',\n incomplete: 'Check that focusable elements are not tabbable in the current state'\n }\n },\n 'focusable-disabled': {\n impact: 'serious',\n messages: {\n pass: 'No focusable elements contained within element',\n fail: 'Focusable content should be disabled or be removed from the DOM'\n }\n },\n 'focusable-not-tabbable': {\n impact: 'serious',\n messages: {\n pass: 'No focusable elements contained within element',\n fail: 'Focusable content should have tabindex=\\'-1\\' or be removed from the DOM'\n }\n },\n 'no-implicit-explicit-label': {\n impact: 'moderate',\n messages: {\n pass: 'There is no mismatch between a <label> and accessible name',\n incomplete: 'Check that the <label> does not need be part of the ARIA ${data} field\\'s name'\n }\n },\n 'aria-required-attr': {\n impact: 'critical',\n messages: {\n pass: 'All required ARIA attributes are present',\n fail: {\n singular: 'Required ARIA attribute not present: ${data.values}',\n plural: 'Required ARIA attributes not present: ${data.values}'\n }\n }\n },\n 'aria-required-children': {\n impact: 'critical',\n messages: {\n pass: 'Required ARIA children are present',\n fail: {\n singular: 'Required ARIA child role not present: ${data.values}',\n plural: 'Required ARIA children role not present: ${data.values}'\n },\n incomplete: {\n singular: 'Expecting ARIA child role to be added: ${data.values}',\n plural: 'Expecting ARIA children role to be added: ${data.values}'\n }\n }\n },\n 'aria-required-parent': {\n impact: 'critical',\n messages: {\n pass: 'Required ARIA parent role present',\n fail: {\n singular: 'Required ARIA parent role not present: ${data.values}',\n plural: 'Required ARIA parents role not present: ${data.values}'\n }\n }\n },\n 'aria-roledescription': {\n impact: 'serious',\n messages: {\n pass: 'aria-roledescription used on a supported semantic role',\n incomplete: 'Check that the aria-roledescription is announced by supported screen readers',\n fail: 'Give the element a role that supports aria-roledescription'\n }\n },\n fallbackrole: {\n impact: 'serious',\n messages: {\n pass: 'Only one role value used',\n fail: 'Use only one role value, since fallback roles are not supported in older browsers'\n }\n },\n invalidrole: {\n impact: 'critical',\n messages: {\n pass: 'ARIA role is valid',\n fail: {\n singular: 'Role must be one of the valid ARIA roles: ${data.values}',\n plural: 'Roles must be one of the valid ARIA roles: ${data.values}'\n }\n }\n },\n abstractrole: {\n impact: 'serious',\n messages: {\n pass: 'Abstract roles are not used',\n fail: {\n singular: 'Abstract role cannot be directly used: ${data.values}',\n plural: 'Abstract roles cannot be directly used: ${data.values}'\n }\n }\n },\n unsupportedrole: {\n impact: 'critical',\n messages: {\n pass: 'ARIA role is supported',\n fail: 'The role used is not widely supported in screen readers and assistive technologies: ${data.values}'\n }\n },\n 'has-visible-text': {\n impact: 'minor',\n messages: {\n pass: 'Element has text that is visible to screen readers',\n fail: 'Element does not have text that is visible to screen readers'\n }\n },\n 'aria-valid-attr-value': {\n impact: 'critical',\n messages: {\n pass: 'ARIA attribute values are valid',\n fail: {\n singular: 'Invalid ARIA attribute value: ${data.values}',\n plural: 'Invalid ARIA attribute values: ${data.values}'\n },\n incomplete: {\n noId: 'ARIA attribute element ID does not exist on the page: ${data.needsReview}',\n ariaCurrent: 'ARIA attribute value is invalid and will be treated as \"aria-current=true\": ${data.needsReview}'\n }\n }\n },\n 'aria-errormessage': {\n impact: 'critical',\n messages: {\n pass: 'Uses a supported aria-errormessage technique',\n fail: {\n singular: 'aria-errormessage value `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)',\n plural: 'aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)'\n }\n }\n },\n 'aria-valid-attr': {\n impact: 'critical',\n messages: {\n pass: 'ARIA attribute name is valid',\n fail: {\n singular: 'Invalid ARIA attribute name: ${data.values}',\n plural: 'Invalid ARIA attribute names: ${data.values}'\n }\n }\n },\n caption: {\n impact: 'critical',\n messages: {\n pass: 'The multimedia element has a captions track',\n incomplete: 'Check that captions is available for the element'\n }\n },\n 'autocomplete-valid': {\n impact: 'serious',\n messages: {\n pass: 'the autocomplete attribute is correctly formatted',\n fail: 'the autocomplete attribute is incorrectly formatted'\n }\n },\n 'autocomplete-appropriate': {\n impact: 'serious',\n messages: {\n pass: 'the autocomplete value is on an appropriate element',\n fail: 'the autocomplete value is inappropriate for this type of input'\n }\n },\n 'avoid-inline-spacing': {\n impact: 'serious',\n messages: {\n pass: 'No inline styles with \\'!important\\' that affect text spacing has been specified',\n fail: {\n singular: 'Remove \\'!important\\' from inline style ${data.values}, as overriding this is not supported by most browsers',\n plural: 'Remove \\'!important\\' from inline styles ${data.values}, as overriding this is not supported by most browsers'\n }\n }\n },\n 'is-on-screen': {\n impact: 'serious',\n messages: {\n pass: 'Element is not visible',\n fail: 'Element is visible'\n }\n },\n 'button-has-visible-text': {\n impact: 'critical',\n messages: {\n pass: 'Element has inner text that is visible to screen readers',\n fail: 'Element does not have inner text that is visible to screen readers'\n }\n },\n 'role-presentation': {\n impact: 'minor',\n messages: {\n pass: 'Element\\'s default semantics were overriden with role=\"presentation\"',\n fail: 'Element\\'s default semantics were not overridden with role=\"presentation\"'\n }\n },\n 'role-none': {\n impact: 'minor',\n messages: {\n pass: 'Element\\'s default semantics were overriden with role=\"none\"',\n fail: 'Element\\'s default semantics were not overridden with role=\"none\"'\n }\n },\n 'internal-link-present': {\n impact: 'serious',\n messages: {\n pass: 'Valid skip link found',\n fail: 'No valid skip link found'\n }\n },\n 'header-present': {\n impact: 'serious',\n messages: {\n pass: 'Page has a heading',\n fail: 'Page does not have a heading'\n }\n },\n landmark: {\n impact: 'serious',\n messages: {\n pass: 'Page has a landmark region',\n fail: 'Page does not have a landmark region'\n }\n },\n 'group-labelledby': {\n impact: 'critical',\n messages: {\n pass: 'Elements with the name \"${data.name}\" have both a shared label, and a unique label, referenced through aria-labelledby',\n fail: {\n default: 'Elements with the name \"${data.name}\" do not all have both a shared label, and a unique label referenced through aria-labelledby',\n 'no-shared-label': 'Elements with the name \"${data.name}\" do not all have a shared label referenced through aria-labelledby',\n 'no-unique-label': 'Elements with the name \"${data.name}\" do not all have a unique label referenced through aria-labelledby'\n }\n }\n },\n fieldset: {\n impact: 'critical',\n messages: {\n pass: 'Element is contained in a fieldset',\n fail: {\n default: 'Element does not have a containing fieldset or ARIA group',\n 'no-legend': 'Fieldset does not have a legend as its first child',\n 'empty-legend': 'Legend does not have text that is visible to screen readers',\n 'mixed-inputs': 'Fieldset contains unrelated inputs',\n 'no-group-label': 'ARIA group does not have aria-label or aria-labelledby',\n 'group-mixed-inputs': 'ARIA group contains unrelated inputs'\n }\n }\n },\n 'color-contrast': {\n impact: 'serious',\n messages: {\n pass: 'Element has sufficient color contrast of ${data.contrastRatio}',\n fail: 'Element has insufficient color contrast of ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). Expected contrast ratio of ${data.expectedContrastRatio}',\n incomplete: {\n default: 'Unable to determine contrast ratio',\n bgImage: 'Element\\'s background color could not be determined due to a background image',\n bgGradient: 'Element\\'s background color could not be determined due to a background gradient',\n imgNode: 'Element\\'s background color could not be determined because element contains an image node',\n bgOverlap: 'Element\\'s background color could not be determined because it is overlapped by another element',\n fgAlpha: 'Element\\'s foreground color could not be determined because of alpha transparency',\n elmPartiallyObscured: 'Element\\'s background color could not be determined because it\\'s partially obscured by another element',\n elmPartiallyObscuring: 'Element\\'s background color could not be determined because it partially overlaps other elements',\n outsideViewport: 'Element\\'s background color could not be determined because it\\'s outside the viewport',\n equalRatio: 'Element has a 1:1 contrast ratio with the background',\n shortTextContent: 'Element content is too short to determine if it is actual text content',\n nonBmp: 'Element content contains only non-text characters'\n }\n }\n },\n 'css-orientation-lock': {\n impact: 'serious',\n messages: {\n pass: 'Display is operable, and orientation lock does not exist',\n fail: 'CSS Orientation lock is applied, and makes display inoperable',\n incomplete: 'CSS Orientation lock cannot be determined'\n }\n },\n 'structured-dlitems': {\n impact: 'serious',\n messages: {\n pass: 'When not empty, element has both <dt> and <dd> elements',\n fail: 'When not empty, element does not have at least one <dt> element followed by at least one <dd> element'\n }\n },\n 'only-dlitems': {\n impact: 'serious',\n messages: {\n pass: 'List element only has direct children that are allowed inside <dt> or <dd> elements',\n fail: 'List element has direct children that are not allowed inside <dt> or <dd> elements'\n }\n },\n dlitem: {\n impact: 'serious',\n messages: {\n pass: 'Description list item has a <dl> parent element',\n fail: 'Description list item does not have a <dl> parent element'\n }\n },\n 'doc-has-title': {\n impact: 'serious',\n messages: {\n pass: 'Document has a non-empty <title> element',\n fail: 'Document does not have a non-empty <title> element'\n }\n },\n 'duplicate-id-active': {\n impact: 'serious',\n messages: {\n pass: 'Document has no active elements that share the same id attribute',\n fail: 'Document has active elements with the same id attribute: ${data}'\n }\n },\n 'duplicate-id-aria': {\n impact: 'critical',\n messages: {\n pass: 'Document has no elements referenced with ARIA or labels that share the same id attribute',\n fail: 'Document has multiple elements referenced with ARIA with the same id attribute: ${data}'\n }\n },\n 'duplicate-id': {\n impact: 'minor',\n messages: {\n pass: 'Document has no static elements that share the same id attribute',\n fail: 'Document has multiple static elements with the same id attribute'\n }\n },\n 'has-widget-role': {\n impact: 'minor',\n messages: {\n pass: 'Element has a widget role.',\n fail: 'Element does not have a widget role.'\n }\n },\n 'valid-scrollable-semantics': {\n impact: 'minor',\n messages: {\n pass: 'Element has valid semantics for an element in the focus order.',\n fail: 'Element has invalid semantics for an element in the focus order.'\n }\n },\n 'multiple-label': {\n impact: 'moderate',\n messages: {\n pass: 'Form field does not have multiple label elements',\n incomplete: 'Multiple label elements is not widely supported in assistive technologies. Ensure the first label contains all necessary information.'\n }\n },\n 'frame-tested': {\n impact: 'critical',\n messages: {\n pass: 'The iframe was tested with axe-core',\n fail: 'The iframe could not be tested with axe-core',\n incomplete: 'The iframe still has to be tested with axe-core'\n }\n },\n 'unique-frame-title': {\n impact: 'serious',\n messages: {\n pass: 'Element\\'s title attribute is unique',\n fail: 'Element\\'s title attribute is not unique'\n }\n },\n 'heading-order': {\n impact: 'moderate',\n messages: {\n pass: 'Heading order valid',\n fail: 'Heading order invalid'\n }\n },\n 'hidden-content': {\n impact: 'minor',\n messages: {\n pass: 'All content on the page has been analyzed.',\n fail: 'There were problems analyzing the content on this page.',\n incomplete: 'There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it.'\n }\n },\n 'has-lang': {\n impact: 'serious',\n messages: {\n pass: 'The <html> element has a lang attribute',\n fail: {\n noXHTML: 'The xml:lang attribute is not valid on HTML pages, use the lang attribute.',\n noLang: 'The <html> element does not have a lang attribute'\n }\n }\n },\n 'valid-lang': {\n impact: 'serious',\n messages: {\n pass: 'Value of lang attribute is included in the list of valid languages',\n fail: 'Value of lang attribute not included in the list of valid languages'\n }\n },\n 'xml-lang-mismatch': {\n impact: 'moderate',\n messages: {\n pass: 'Lang and xml:lang attributes have the same base language',\n fail: 'Lang and xml:lang attributes do not have the same base language'\n }\n },\n 'identical-links-same-purpose': {\n impact: 'minor',\n messages: {\n pass: 'There are no other links with the same name, that go to a different URL',\n incomplete: 'Check that links have the same purpose, or are intentionally ambiguous.'\n }\n },\n 'has-alt': {\n impact: 'critical',\n messages: {\n pass: 'Element has an alt attribute',\n fail: 'Element does not have an alt attribute'\n }\n },\n 'alt-space-value': {\n impact: 'critical',\n messages: {\n pass: 'Element has a valid alt attribute value',\n fail: 'Element has an alt attribute containing only a space character, which is not ignored by all screen readers'\n }\n },\n 'duplicate-img-label': {\n impact: 'minor',\n messages: {\n pass: 'Element does not duplicate existing text in <img> alt text',\n fail: 'Element contains <img> element with alt text that duplicates existing text'\n }\n },\n 'non-empty-if-present': {\n impact: 'critical',\n messages: {\n pass: {\n default: 'Element does not have a value attribute',\n 'has-label': 'Element has a non-empty value attribute'\n },\n fail: 'Element has a value attribute and the value attribute is empty'\n }\n },\n 'non-empty-value': {\n impact: 'critical',\n messages: {\n pass: 'Element has a non-empty value attribute',\n fail: 'Element has no value attribute or the value attribute is empty'\n }\n },\n 'label-content-name-mismatch': {\n impact: 'serious',\n messages: {\n pass: 'Element contains visible text as part of it\\'s accessible name',\n fail: 'Text inside the element is not included in the accessible name'\n }\n },\n 'title-only': {\n impact: 'serious',\n messages: {\n pass: 'Form element does not solely use title attribute for its label',\n fail: 'Only title used to generate label for form element'\n }\n },\n 'implicit-label': {\n impact: 'critical',\n messages: {\n pass: 'Form element has an implicit (wrapped) <label>',\n fail: 'Form element does not have an implicit (wrapped) <label>'\n }\n },\n 'explicit-label': {\n impact: 'critical',\n messages: {\n pass: 'Form element has an explicit <label>',\n fail: 'Form element does not have an explicit <label>'\n }\n },\n 'help-same-as-label': {\n impact: 'minor',\n messages: {\n pass: 'Help text (title or aria-describedby) does not duplicate label text',\n fail: 'Help text (title or aria-describedby) text is the same as the label text'\n }\n },\n 'hidden-explicit-label': {\n impact: 'critical',\n messages: {\n pass: 'Form element has a visible explicit <label>',\n fail: 'Form element has explicit <label> that is hidden'\n }\n },\n 'landmark-is-top-level': {\n impact: 'moderate',\n messages: {\n pass: 'The ${data.role} landmark is at the top level.',\n fail: 'The ${data.role} landmark is contained in another landmark.'\n }\n },\n 'page-no-duplicate-banner': {\n impact: 'moderate',\n messages: {\n pass: 'Document does not have more than one banner landmark',\n fail: 'Document has more than one banner landmark'\n }\n },\n 'page-no-duplicate-contentinfo': {\n impact: 'moderate',\n messages: {\n pass: 'Document does not have more than one contentinfo landmark',\n fail: 'Document has more than one contentinfo landmark'\n }\n },\n 'page-no-duplicate-main': {\n impact: 'moderate',\n messages: {\n pass: 'Document does not have more than one main landmark',\n fail: 'Document has more than one main landmark'\n }\n },\n 'page-has-main': {\n impact: 'moderate',\n messages: {\n pass: 'Document has at least one main landmark',\n fail: 'Document does not have a main landmark'\n }\n },\n 'landmark-is-unique': {\n impact: 'moderate',\n messages: {\n pass: 'Landmarks must have a unique role or role/label/title (i.e. accessible name) combination',\n fail: 'The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable'\n }\n },\n 'has-th': {\n impact: 'serious',\n messages: {\n pass: 'Layout table does not use <th> elements',\n fail: 'Layout table uses <th> elements'\n }\n },\n 'has-caption': {\n impact: 'serious',\n messages: {\n pass: 'Layout table does not use <caption> element',\n fail: 'Layout table uses <caption> element'\n }\n },\n 'has-summary': {\n impact: 'serious',\n messages: {\n pass: 'Layout table does not use summary attribute',\n fail: 'Layout table uses summary attribute'\n }\n },\n 'link-in-text-block': {\n impact: 'serious',\n messages: {\n pass: 'Links can be distinguished from surrounding text in some way other than by color',\n fail: 'Links need to be distinguished from surrounding text in some way other than by color',\n incomplete: {\n default: 'Unable to determine contrast ratio',\n bgContrast: 'Element\\'s contrast ratio could not be determined. Check for a distinct hover/focus style',\n bgImage: 'Element\\'s contrast ratio could not be determined due to a background image',\n bgGradient: 'Element\\'s contrast ratio could not be determined due to a background gradient',\n imgNode: 'Element\\'s contrast ratio could not be determined because element contains an image node',\n bgOverlap: 'Element\\'s contrast ratio could not be determined because of element overlap'\n }\n }\n },\n 'focusable-no-name': {\n impact: 'serious',\n messages: {\n pass: 'Element is not in tab order or has accessible text',\n fail: 'Element is in tab order and does not have accessible text'\n }\n },\n 'only-listitems': {\n impact: 'serious',\n messages: {\n pass: 'List element only has direct children that are allowed inside <li> elements',\n fail: {\n default: 'List element has direct children that are not allowed inside <li> elements',\n roleNotValid: 'List element has direct children with a role that is not allowed: ${data.roles}'\n }\n }\n },\n listitem: {\n impact: 'serious',\n messages: {\n pass: 'List item has a <ul>, <ol> or role=\"list\" parent element',\n fail: {\n default: 'List item does not have a <ul>, <ol> parent element',\n roleNotValid: 'List item does not have a <ul>, <ol> parent element without a role, or a role=\"list\"'\n }\n }\n },\n 'meta-refresh': {\n impact: 'critical',\n messages: {\n pass: '<meta> tag does not immediately refresh the page',\n fail: '<meta> tag forces timed refresh of page'\n }\n },\n 'meta-viewport-large': {\n impact: 'minor',\n messages: {\n pass: '<meta> tag does not prevent significant zooming on mobile devices',\n fail: '<meta> tag limits zooming on mobile devices'\n }\n },\n 'meta-viewport': {\n impact: 'critical',\n messages: {\n pass: '<meta> tag does not disable zooming on mobile devices',\n fail: '${data} on <meta> tag disables zooming on mobile devices'\n }\n },\n 'no-autoplay-audio': {\n impact: 'moderate',\n messages: {\n pass: '<video> or <audio> does not output audio for more than allowed duration or has controls mechanism',\n fail: '<video> or <audio> outputs audio for more than allowed duration and does not have a controls mechanism',\n incomplete: 'Check that the <video> or <audio> does not output audio for more than allowed duration or provides a controls mechanism'\n }\n },\n 'p-as-heading': {\n impact: 'serious',\n messages: {\n pass: '<p> elements are not styled as headings',\n fail: 'Heading elements should be used instead of styled p elements'\n }\n },\n 'page-has-heading-one': {\n impact: 'moderate',\n messages: {\n pass: 'Page has at least one level-one heading',\n fail: 'Page must have a level-one heading'\n }\n },\n region: {\n impact: 'moderate',\n messages: {\n pass: 'All page content is contained by landmarks',\n fail: 'Some page content is not contained by landmarks'\n }\n },\n 'html5-scope': {\n impact: 'moderate',\n messages: {\n pass: 'Scope attribute is only used on table header elements (<th>)',\n fail: 'In HTML 5, scope attributes may only be used on table header elements (<th>)'\n }\n },\n 'scope-value': {\n impact: 'critical',\n messages: {\n pass: 'Scope attribute is used correctly',\n fail: 'The value of the scope attribute may only be \\'row\\' or \\'col\\''\n }\n },\n 'focusable-content': {\n impact: 'moderate',\n messages: {\n pass: 'Element contains focusable elements',\n fail: 'Element should have focusable content'\n }\n },\n 'focusable-element': {\n impact: 'moderate',\n messages: {\n pass: 'Element is focusable',\n fail: 'Element should be focusable'\n }\n },\n exists: {\n impact: 'minor',\n messages: {\n pass: 'Element does not exist',\n incomplete: 'Element exists'\n }\n },\n 'skip-link': {\n impact: 'moderate',\n messages: {\n pass: 'Skip link target exists',\n incomplete: 'Skip link target should become visible on activation',\n fail: 'No skip link target'\n }\n },\n 'svg-non-empty-title': {\n impact: 'serious',\n messages: {\n pass: 'element has a child that is a title',\n fail: 'element has no child that is a title'\n }\n },\n tabindex: {\n impact: 'serious',\n messages: {\n pass: 'Element does not have a tabindex greater than 0',\n fail: 'Element has a tabindex greater than 0'\n }\n },\n 'same-caption-summary': {\n impact: 'minor',\n messages: {\n pass: 'Content of summary attribute and <caption> are not duplicated',\n fail: 'Content of summary attribute and <caption> element are identical'\n }\n },\n 'caption-faked': {\n impact: 'serious',\n messages: {\n pass: 'The first row of a table is not used as a caption',\n fail: 'The first child of the table should be a caption instead of a table cell'\n }\n },\n 'td-has-header': {\n impact: 'critical',\n messages: {\n pass: 'All non-empty data cells have table headers',\n fail: 'Some non-empty data cells do not have table headers'\n }\n },\n 'td-headers-attr': {\n impact: 'serious',\n messages: {\n pass: 'The headers attribute is exclusively used to refer to other cells in the table',\n incomplete: 'The headers attribute is empty',\n fail: 'The headers attribute is not exclusively used to refer to other cells in the table'\n }\n },\n 'th-has-data-cells': {\n impact: 'serious',\n messages: {\n pass: 'All table header cells refer to data cells',\n fail: 'Not all table header cells refer to data cells',\n incomplete: 'Table data cells are missing or empty'\n }\n },\n description: {\n impact: 'critical',\n messages: {\n pass: 'The multimedia element has an audio description track',\n incomplete: 'Check that audio description is available for the element'\n }\n }\n },\n failureSummaries: {\n any: {\n failureMessage: function anonymous(it) {\n var out = 'Fix any of the following:';\n var arr1 = it;\n\n if (arr1) {\n var value,\n i1 = -1,\n l1 = arr1.length - 1;\n\n while (i1 < l1) {\n value = arr1[i1 += 1];\n out += '\\n ' + value.split('\\n').join('\\n ');\n }\n }\n\n return out;\n }\n },\n none: {\n failureMessage: function anonymous(it) {\n var out = 'Fix all of the following:';\n var arr1 = it;\n\n if (arr1) {\n var value,\n i1 = -1,\n l1 = arr1.length - 1;\n\n while (i1 < l1) {\n value = arr1[i1 += 1];\n out += '\\n ' + value.split('\\n').join('\\n ');\n }\n }\n\n return out;\n }\n }\n },\n incompleteFallbackMessage: {}\n },\n rules: [{\n id: 'accesskeys',\n selector: '[accesskey]',\n excludeHidden: false,\n tags: ['best-practice', 'cat.keyboard'],\n all: [],\n any: [],\n none: ['accesskeys']\n }, {\n id: 'area-alt',\n selector: 'map area[href]',\n excludeHidden: false,\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'wcag244', 'wcag412', 'section508', 'section508.22.a'],\n all: [],\n any: ['non-empty-alt', 'non-empty-title', 'aria-label', 'aria-labelledby'],\n none: []\n }, {\n id: 'aria-allowed-attr',\n matches: function matches(node, virtualNode, context) {\n var aria = /^aria-/;\n\n if (node.hasAttributes()) {\n var attrs = axe.utils.getNodeAttributes(node);\n\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (aria.test(attrs[i].name)) {\n return true;\n }\n }\n }\n\n return false;\n },\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: ['aria-allowed-attr'],\n none: ['aria-unsupported-attr']\n }, {\n id: 'aria-allowed-role',\n excludeHidden: false,\n selector: '[role]',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.aria.getRole(node, {\n noImplicit: true,\n dpub: true,\n fallback: true\n }) !== null;\n },\n tags: ['cat.aria', 'best-practice'],\n all: [],\n any: [{\n options: {\n allowImplicit: true,\n ignoredTags: []\n },\n id: 'aria-allowed-role'\n }],\n none: []\n }, {\n id: 'aria-dpub-role-fallback',\n selector: '[role]',\n matches: function matches(node, virtualNode, context) {\n var role = node.getAttribute('role');\n return ['doc-backlink', 'doc-biblioentry', 'doc-biblioref', 'doc-cover', 'doc-endnote', 'doc-glossref', 'doc-noteref'].includes(role);\n },\n tags: ['cat.aria', 'wcag2a', 'wcag131', 'deprecated'],\n enabled: false,\n all: ['implicit-role-fallback'],\n any: [],\n none: []\n }, {\n id: 'aria-hidden-body',\n selector: 'body',\n excludeHidden: false,\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: ['aria-hidden-body'],\n none: []\n }, {\n id: 'aria-hidden-focus',\n selector: '[aria-hidden=\"true\"]',\n matches: function matches(node, virtualNode, context) {\n var getComposedParent = axe.commons.dom.getComposedParent;\n\n function shouldMatchElement(el) {\n if (!el) {\n return true;\n }\n\n if (el.getAttribute('aria-hidden') === 'true') {\n return false;\n }\n\n return shouldMatchElement(getComposedParent(el));\n }\n\n return shouldMatchElement(getComposedParent(node));\n },\n excludeHidden: false,\n tags: ['cat.name-role-value', 'wcag2a', 'wcag412', 'wcag131'],\n all: ['focusable-modal-open', 'focusable-disabled', 'focusable-not-tabbable'],\n any: [],\n none: []\n }, {\n id: 'aria-input-field-name',\n selector: '[role=\"combobox\"], [role=\"listbox\"], [role=\"searchbox\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"]',\n matches: function matches(node, virtualNode, context) {\n var aria = axe.commons.aria;\n var nodeName = node.nodeName.toUpperCase();\n var role = aria.getRole(node, {\n noImplicit: true\n });\n\n if (nodeName === 'AREA' && !!node.getAttribute('href')) {\n return false;\n }\n\n if (['INPUT', 'SELECT', 'TEXTAREA'].includes(nodeName)) {\n return false;\n }\n\n if (nodeName === 'IMG' || role === 'img' && nodeName !== 'SVG') {\n return false;\n }\n\n if (nodeName === 'BUTTON' || role === 'button') {\n return false;\n }\n\n if (role === 'combobox' && axe.utils.querySelectorAll(virtualNode, 'input:not([type=\"hidden\"])').length) {\n return false;\n }\n\n return true;\n },\n tags: ['wcag2a', 'wcag412'],\n all: [],\n any: ['aria-label', 'aria-labelledby', 'non-empty-title'],\n none: ['no-implicit-explicit-label']\n }, {\n id: 'aria-required-attr',\n selector: '[role]',\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: ['aria-required-attr'],\n none: []\n }, {\n id: 'aria-required-children',\n selector: '[role]',\n tags: ['cat.aria', 'wcag2a', 'wcag131'],\n all: [],\n any: [{\n options: {\n reviewEmpty: ['doc-bibliography', 'doc-endnotes', 'grid', 'list', 'listbox', 'table', 'tablist', 'tree', 'treegrid', 'rowgroup']\n },\n id: 'aria-required-children'\n }],\n none: []\n }, {\n id: 'aria-required-parent',\n selector: '[role]',\n tags: ['cat.aria', 'wcag2a', 'wcag131'],\n all: [],\n any: ['aria-required-parent'],\n none: []\n }, {\n id: 'aria-roledescription',\n selector: '[aria-roledescription]',\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: [{\n options: {\n supportedRoles: ['button', 'img', 'checkbox', 'radio', 'combobox', 'menuitemcheckbox', 'menuitemradio']\n },\n id: 'aria-roledescription'\n }],\n none: []\n }, {\n id: 'aria-roles',\n selector: '[role]',\n matches: function matches(node, virtualNode, context) {\n if (!virtualNode.hasAttr('role')) {\n return false;\n }\n\n if (!virtualNode.attr('role').trim()) {\n return false;\n }\n\n return true;\n },\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: [],\n none: ['fallbackrole', 'invalidrole', 'abstractrole', 'unsupportedrole']\n }, {\n id: 'aria-toggle-field-name',\n selector: '[role=\"checkbox\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"], [role=\"radio\"], [role=\"switch\"]',\n matches: function matches(node, virtualNode, context) {\n var aria = axe.commons.aria;\n var nodeName = node.nodeName.toUpperCase();\n var role = aria.getRole(node, {\n noImplicit: true\n });\n\n if (nodeName === 'AREA' && !!node.getAttribute('href')) {\n return false;\n }\n\n if (['INPUT', 'SELECT', 'TEXTAREA'].includes(nodeName)) {\n return false;\n }\n\n if (nodeName === 'IMG' || role === 'img' && nodeName !== 'SVG') {\n return false;\n }\n\n if (nodeName === 'BUTTON' || role === 'button') {\n return false;\n }\n\n if (role === 'combobox' && axe.utils.querySelectorAll(virtualNode, 'input:not([type=\"hidden\"])').length) {\n return false;\n }\n\n return true;\n },\n tags: ['wcag2a', 'wcag412'],\n all: [],\n any: ['aria-label', 'aria-labelledby', 'non-empty-title', 'has-visible-text'],\n none: ['no-implicit-explicit-label']\n }, {\n id: 'aria-valid-attr-value',\n matches: function matches(node, virtualNode, context) {\n var aria = /^aria-/;\n\n if (node.hasAttributes()) {\n var attrs = axe.utils.getNodeAttributes(node);\n\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (aria.test(attrs[i].name)) {\n return true;\n }\n }\n }\n\n return false;\n },\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [{\n options: [],\n id: 'aria-valid-attr-value'\n }, 'aria-errormessage'],\n any: [],\n none: []\n }, {\n id: 'aria-valid-attr',\n matches: function matches(node, virtualNode, context) {\n var aria = /^aria-/;\n\n if (node.hasAttributes()) {\n var attrs = axe.utils.getNodeAttributes(node);\n\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (aria.test(attrs[i].name)) {\n return true;\n }\n }\n }\n\n return false;\n },\n tags: ['cat.aria', 'wcag2a', 'wcag412'],\n all: [],\n any: [{\n options: [],\n id: 'aria-valid-attr'\n }],\n none: []\n }, {\n id: 'audio-caption',\n selector: 'audio',\n enabled: false,\n excludeHidden: false,\n tags: ['cat.time-and-media', 'wcag2a', 'wcag121', 'section508', 'section508.22.a'],\n all: [],\n any: [],\n none: ['caption']\n }, {\n id: 'autocomplete-valid',\n matches: function matches(node, virtualNode, context) {\n var _axe$commons = axe.commons,\n text = _axe$commons.text,\n aria = _axe$commons.aria,\n dom = _axe$commons.dom;\n var autocomplete = virtualNode.attr('autocomplete');\n\n if (!autocomplete || text.sanitize(autocomplete) === '') {\n return false;\n }\n\n var nodeName = virtualNode.props.nodeName;\n\n if (['textarea', 'input', 'select'].includes(nodeName) === false) {\n return false;\n }\n\n var excludedInputTypes = ['submit', 'reset', 'button', 'hidden'];\n\n if (nodeName === 'input' && excludedInputTypes.includes(virtualNode.props.type)) {\n return false;\n }\n\n var ariaDisabled = virtualNode.attr('aria-disabled') || 'false';\n\n if (virtualNode.hasAttr('disabled') || ariaDisabled.toLowerCase() === 'true') {\n return false;\n }\n\n var role = virtualNode.attr('role');\n var tabIndex = virtualNode.attr('tabindex');\n\n if (tabIndex === '-1' && role) {\n var roleDef = aria.lookupTable.role[role];\n\n if (roleDef === undefined || roleDef.type !== 'widget') {\n return false;\n }\n }\n\n if (tabIndex === '-1' && virtualNode.actualNode && !dom.isVisible(virtualNode.actualNode, false) && !dom.isVisible(virtualNode.actualNode, true)) {\n return false;\n }\n\n return true;\n },\n tags: ['cat.forms', 'wcag21aa', 'wcag135'],\n all: ['autocomplete-valid', 'autocomplete-appropriate'],\n any: [],\n none: []\n }, {\n id: 'avoid-inline-spacing',\n selector: '[style]',\n tags: ['wcag21aa', 'wcag1412'],\n all: ['avoid-inline-spacing'],\n any: [],\n none: []\n }, {\n id: 'blink',\n selector: 'blink',\n excludeHidden: false,\n tags: ['cat.time-and-media', 'wcag2a', 'wcag222', 'section508', 'section508.22.j'],\n all: [],\n any: [],\n none: ['is-on-screen']\n }, {\n id: 'button-name',\n selector: 'button, [role=\"button\"]:not(input)',\n tags: ['cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a'],\n all: [],\n any: ['button-has-visible-text', 'aria-label', 'aria-labelledby', 'role-presentation', 'role-none', 'non-empty-title'],\n none: []\n }, {\n id: 'bypass',\n selector: 'html',\n pageLevel: true,\n matches: function matches(node, virtualNode, context) {\n return !!node.querySelector('a[href]');\n },\n tags: ['cat.keyboard', 'wcag2a', 'wcag241', 'section508', 'section508.22.o'],\n all: [],\n any: ['internal-link-present', 'header-present', 'landmark'],\n none: []\n }, {\n id: 'checkboxgroup',\n selector: 'input[type=checkbox][name]',\n tags: ['cat.forms', 'best-practice', 'deprecated'],\n enabled: false,\n all: [],\n any: ['group-labelledby', 'fieldset'],\n none: []\n }, {\n id: 'color-contrast',\n matches: function matches(node, virtualNode, context) {\n var nodeName = node.nodeName.toUpperCase();\n var nodeType = node.type;\n\n if (node.getAttribute('aria-disabled') === 'true' || axe.commons.dom.findUpVirtual(virtualNode, '[aria-disabled=\"true\"]')) {\n return false;\n }\n\n var formElements = ['INPUT', 'SELECT', 'TEXTAREA'];\n\n if (formElements.includes(nodeName)) {\n var style = window.getComputedStyle(node);\n var textIndent = parseInt(style.getPropertyValue('text-indent'), 10);\n\n if (textIndent) {\n var rect = node.getBoundingClientRect();\n rect = {\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left + textIndent,\n right: rect.right + textIndent\n };\n\n if (!axe.commons.dom.visuallyOverlaps(rect, node)) {\n return false;\n }\n }\n }\n\n if (nodeName === 'INPUT') {\n return ['hidden', 'range', 'color', 'checkbox', 'radio', 'image'].indexOf(nodeType) === -1 && !node.disabled;\n }\n\n if (nodeName === 'SELECT') {\n return !!node.options.length && !node.disabled;\n }\n\n if (nodeName === 'TEXTAREA') {\n return !node.disabled;\n }\n\n if (nodeName === 'OPTION') {\n return false;\n }\n\n if (nodeName === 'BUTTON' && node.disabled || axe.commons.dom.findUpVirtual(virtualNode, 'button[disabled]')) {\n return false;\n }\n\n if (nodeName === 'FIELDSET' && node.disabled || axe.commons.dom.findUpVirtual(virtualNode, 'fieldset[disabled]')) {\n return false;\n }\n\n var nodeParentLabel = axe.commons.dom.findUpVirtual(virtualNode, 'label');\n\n if (nodeName === 'LABEL' || nodeParentLabel) {\n var relevantNode = node;\n var relevantVirtualNode = virtualNode;\n\n if (nodeParentLabel) {\n relevantNode = nodeParentLabel;\n relevantVirtualNode = axe.utils.getNodeFromTree(nodeParentLabel);\n }\n\n var doc = axe.commons.dom.getRootNode(relevantNode);\n var candidate = relevantNode.htmlFor && doc.getElementById(relevantNode.htmlFor);\n var candidateVirtualNode = axe.utils.getNodeFromTree(candidate);\n\n if (candidate && (candidate.disabled || candidate.getAttribute('aria-disabled') === 'true' || axe.commons.dom.findUpVirtual(candidateVirtualNode, '[aria-disabled=\"true\"]'))) {\n return false;\n }\n\n candidate = axe.utils.querySelectorAll(relevantVirtualNode, 'input:not([type=\"hidden\"]):not([type=\"image\"])' + ':not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]), select, textarea');\n\n if (candidate.length && candidate[0].actualNode.disabled) {\n return false;\n }\n }\n\n if (node.getAttribute('id')) {\n var id = axe.utils.escapeSelector(node.getAttribute('id'));\n\n var _doc = axe.commons.dom.getRootNode(node);\n\n var _candidate = _doc.querySelector('[aria-labelledby~=' + id + ']');\n\n if (_candidate && _candidate.disabled) {\n return false;\n }\n }\n\n var visibleText = axe.commons.text.visibleVirtual(virtualNode, false, true);\n\n if (visibleText === '' || axe.commons.text.removeUnicode(visibleText, {\n emoji: true,\n nonBmp: false,\n punctuations: true\n }) === '') {\n return false;\n }\n\n var range = document.createRange();\n var childNodes = virtualNode.children;\n var length = childNodes.length;\n var child = null;\n var index = 0;\n\n for (index = 0; index < length; index++) {\n child = childNodes[index];\n\n if (child.actualNode.nodeType === 3 && axe.commons.text.sanitize(child.actualNode.nodeValue) !== '') {\n range.selectNodeContents(child.actualNode);\n }\n }\n\n var rects = range.getClientRects();\n length = rects.length;\n\n for (index = 0; index < length; index++) {\n if (axe.commons.dom.visuallyOverlaps(rects[index], node)) {\n return true;\n }\n }\n\n return false;\n },\n excludeHidden: false,\n tags: ['cat.color', 'wcag2aa', 'wcag143'],\n all: [],\n any: [{\n options: {\n noScroll: false,\n ignoreUnicode: true,\n ignoreLength: false\n },\n id: 'color-contrast'\n }],\n none: []\n }, {\n id: 'css-orientation-lock',\n selector: 'html',\n tags: ['cat.structure', 'wcag134', 'wcag21aa', 'experimental'],\n all: [{\n options: {\n degreeThreshold: 2\n },\n id: 'css-orientation-lock'\n }],\n any: [],\n none: [],\n preload: true\n }, {\n id: 'definition-list',\n selector: 'dl',\n matches: function matches(node, virtualNode, context) {\n return !node.getAttribute('role');\n },\n tags: ['cat.structure', 'wcag2a', 'wcag131'],\n all: [],\n any: [],\n none: ['structured-dlitems', 'only-dlitems']\n }, {\n id: 'dlitem',\n selector: 'dd, dt',\n matches: function matches(node, virtualNode, context) {\n return !node.getAttribute('role');\n },\n tags: ['cat.structure', 'wcag2a', 'wcag131'],\n all: [],\n any: ['dlitem'],\n none: []\n }, {\n id: 'document-title',\n selector: 'html',\n matches: function matches(node, virtualNode, context) {\n return node.ownerDocument.defaultView.self === node.ownerDocument.defaultView.top;\n },\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag242'],\n all: [],\n any: ['doc-has-title'],\n none: []\n }, {\n id: 'duplicate-id-active',\n selector: '[id]',\n matches: function matches(node, virtualNode, context) {\n var _axe$commons2 = axe.commons,\n dom = _axe$commons2.dom,\n aria = _axe$commons2.aria;\n var id = node.getAttribute('id').trim();\n var idSelector = '*[id=\"'.concat(axe.utils.escapeSelector(id), '\"]');\n var idMatchingElms = Array.from(dom.getRootNode(node).querySelectorAll(idSelector));\n return !aria.isAccessibleRef(node) && idMatchingElms.some(dom.isFocusable);\n },\n excludeHidden: false,\n tags: ['cat.parsing', 'wcag2a', 'wcag411'],\n all: [],\n any: ['duplicate-id-active'],\n none: []\n }, {\n id: 'duplicate-id-aria',\n selector: '[id]',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.aria.isAccessibleRef(node);\n },\n excludeHidden: false,\n tags: ['cat.parsing', 'wcag2a', 'wcag411'],\n all: [],\n any: ['duplicate-id-aria'],\n none: []\n }, {\n id: 'duplicate-id',\n selector: '[id]',\n matches: function matches(node, virtualNode, context) {\n var _axe$commons3 = axe.commons,\n dom = _axe$commons3.dom,\n aria = _axe$commons3.aria;\n var id = node.getAttribute('id').trim();\n var idSelector = '*[id=\"'.concat(axe.utils.escapeSelector(id), '\"]');\n var idMatchingElms = Array.from(dom.getRootNode(node).querySelectorAll(idSelector));\n return !aria.isAccessibleRef(node) && idMatchingElms.every(function (elm) {\n return !dom.isFocusable(elm);\n });\n },\n excludeHidden: false,\n tags: ['cat.parsing', 'wcag2a', 'wcag411'],\n all: [],\n any: ['duplicate-id'],\n none: []\n }, {\n id: 'empty-heading',\n selector: 'h1, h2, h3, h4, h5, h6, [role=\"heading\"]',\n matches: function matches(node, virtualNode, context) {\n var explicitRoles;\n\n if (node.hasAttribute('role')) {\n explicitRoles = node.getAttribute('role').split(/\\s+/i).filter(axe.commons.aria.isValidRole);\n }\n\n if (explicitRoles && explicitRoles.length > 0) {\n return explicitRoles.includes('heading');\n } else {\n return axe.commons.aria.implicitRole(node) === 'heading';\n }\n },\n tags: ['cat.name-role-value', 'best-practice'],\n all: [],\n any: ['has-visible-text'],\n none: []\n }, {\n id: 'focus-order-semantics',\n selector: 'div, h1, h2, h3, h4, h5, h6, [role=heading], p, span',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.dom.insertedIntoFocusOrder(node);\n },\n tags: ['cat.keyboard', 'best-practice', 'experimental'],\n all: [],\n any: [{\n options: [],\n id: 'has-widget-role'\n }, {\n options: [],\n id: 'valid-scrollable-semantics'\n }],\n none: []\n }, {\n id: 'form-field-multiple-labels',\n selector: 'input, select, textarea',\n matches: function matches(node, virtualNode, context) {\n if (node.nodeName.toLowerCase() !== 'input' || node.hasAttribute('type') === false) {\n return true;\n }\n\n var type = node.getAttribute('type').toLowerCase();\n return ['hidden', 'image', 'button', 'submit', 'reset'].includes(type) === false;\n },\n tags: ['cat.forms', 'wcag2a', 'wcag332'],\n all: [],\n any: [],\n none: ['multiple-label']\n }, {\n id: 'frame-tested',\n selector: 'frame, iframe',\n tags: ['cat.structure', 'review-item', 'best-practice'],\n all: [{\n options: {\n isViolation: false\n },\n id: 'frame-tested'\n }],\n any: [],\n none: []\n }, {\n id: 'frame-title-unique',\n selector: 'frame[title], iframe[title]',\n matches: function matches(node, virtualNode, context) {\n var title = node.getAttribute('title');\n return !!(title ? axe.commons.text.sanitize(title).trim() : '');\n },\n tags: ['cat.text-alternatives', 'best-practice'],\n all: [],\n any: [],\n none: ['unique-frame-title']\n }, {\n id: 'frame-title',\n selector: 'frame, iframe',\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag241', 'wcag412', 'section508', 'section508.22.i'],\n all: [],\n any: ['aria-label', 'aria-labelledby', 'non-empty-title', 'role-presentation', 'role-none'],\n none: []\n }, {\n id: 'heading-order',\n selector: 'h1, h2, h3, h4, h5, h6, [role=heading]',\n matches: function matches(node, virtualNode, context) {\n var explicitRoles;\n\n if (node.hasAttribute('role')) {\n explicitRoles = node.getAttribute('role').split(/\\s+/i).filter(axe.commons.aria.isValidRole);\n }\n\n if (explicitRoles && explicitRoles.length > 0) {\n return explicitRoles.includes('heading');\n } else {\n return axe.commons.aria.implicitRole(node) === 'heading';\n }\n },\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: ['heading-order'],\n none: []\n }, {\n id: 'hidden-content',\n selector: '*',\n excludeHidden: false,\n tags: ['cat.structure', 'experimental', 'review-item', 'best-practice'],\n all: [],\n any: ['hidden-content'],\n none: []\n }, {\n id: 'html-has-lang',\n selector: 'html',\n matches: function matches(node, virtualNode, context) {\n return node.ownerDocument.defaultView.self === node.ownerDocument.defaultView.top;\n },\n tags: ['cat.language', 'wcag2a', 'wcag311'],\n all: [],\n any: ['has-lang'],\n none: []\n }, {\n id: 'html-lang-valid',\n selector: 'html[lang], html[xml\\\\:lang]',\n tags: ['cat.language', 'wcag2a', 'wcag311'],\n all: [],\n any: [],\n none: ['valid-lang']\n }, {\n id: 'html-xml-lang-mismatch',\n selector: 'html[lang][xml\\\\:lang]',\n matches: function matches(node, virtualNode, context) {\n var getBaseLang = axe.utils.getBaseLang;\n var primaryLangValue = getBaseLang(node.getAttribute('lang'));\n var primaryXmlLangValue = getBaseLang(node.getAttribute('xml:lang'));\n return axe.utils.validLangs().includes(primaryLangValue) && axe.utils.validLangs().includes(primaryXmlLangValue);\n },\n tags: ['cat.language', 'wcag2a', 'wcag311'],\n all: ['xml-lang-mismatch'],\n any: [],\n none: []\n }, {\n id: 'identical-links-same-purpose',\n selector: 'a[href], area[href], [role=\"link\"]',\n excludeHidden: false,\n matches: function matches(node, virtualNode, context) {\n var _axe$commons4 = axe.commons,\n aria = _axe$commons4.aria,\n text = _axe$commons4.text;\n var hasAccName = !!text.accessibleTextVirtual(virtualNode);\n\n if (!hasAccName) {\n return false;\n }\n\n var role = aria.getRole(node);\n\n if (role && role !== 'link') {\n return false;\n }\n\n return true;\n },\n tags: ['wcag2aaa', 'wcag249', 'best-practice'],\n all: ['identical-links-same-purpose'],\n any: [],\n none: []\n }, {\n id: 'image-alt',\n selector: 'img',\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a'],\n all: [],\n any: ['has-alt', 'aria-label', 'aria-labelledby', 'non-empty-title', 'role-presentation', 'role-none'],\n none: ['alt-space-value']\n }, {\n id: 'image-redundant-alt',\n selector: 'img',\n tags: ['cat.text-alternatives', 'best-practice'],\n all: [],\n any: [],\n none: ['duplicate-img-label']\n }, {\n id: 'input-button-name',\n selector: 'input[type=\"button\"], input[type=\"submit\"], input[type=\"reset\"]',\n tags: ['cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a'],\n all: [],\n any: ['non-empty-if-present', 'non-empty-value', 'aria-label', 'aria-labelledby', 'role-presentation', 'role-none', 'non-empty-title'],\n none: []\n }, {\n id: 'input-image-alt',\n selector: 'input[type=\"image\"]',\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a'],\n all: [],\n any: ['non-empty-alt', 'aria-label', 'aria-labelledby', 'non-empty-title'],\n none: []\n }, {\n id: 'label-content-name-mismatch',\n matches: function matches(node, virtualNode, context) {\n var _axe$commons5 = axe.commons,\n aria = _axe$commons5.aria,\n text = _axe$commons5.text;\n var role = aria.getRole(node);\n\n if (!role) {\n return false;\n }\n\n var widgetRoles = Object.keys(aria.lookupTable.role).filter(function (key) {\n return aria.lookupTable.role[key].type === 'widget';\n });\n var isWidgetType = widgetRoles.includes(role);\n\n if (!isWidgetType) {\n return false;\n }\n\n var rolesWithNameFromContents = aria.getRolesWithNameFromContents();\n\n if (!rolesWithNameFromContents.includes(role)) {\n return false;\n }\n\n if (!text.sanitize(aria.arialabelText(virtualNode)) && !text.sanitize(aria.arialabelledbyText(node))) {\n return false;\n }\n\n if (!text.sanitize(text.visibleVirtual(virtualNode))) {\n return false;\n }\n\n return true;\n },\n tags: ['wcag21a', 'wcag253', 'experimental'],\n all: [],\n any: [{\n options: {\n pixelThreshold: .1,\n occuranceThreshold: 3\n },\n id: 'label-content-name-mismatch'\n }],\n none: []\n }, {\n id: 'label-title-only',\n selector: 'input, select, textarea',\n matches: function matches(node, virtualNode, context) {\n if (node.nodeName.toLowerCase() !== 'input' || node.hasAttribute('type') === false) {\n return true;\n }\n\n var type = node.getAttribute('type').toLowerCase();\n return ['hidden', 'image', 'button', 'submit', 'reset'].includes(type) === false;\n },\n tags: ['cat.forms', 'best-practice'],\n all: [],\n any: [],\n none: ['title-only']\n }, {\n id: 'label',\n selector: 'input, select, textarea',\n matches: function matches(node, virtualNode, context) {\n if (node.nodeName.toLowerCase() !== 'input' || node.hasAttribute('type') === false) {\n return true;\n }\n\n var type = node.getAttribute('type').toLowerCase();\n return ['hidden', 'image', 'button', 'submit', 'reset'].includes(type) === false;\n },\n tags: ['cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n'],\n all: [],\n any: ['aria-label', 'aria-labelledby', 'implicit-label', 'explicit-label', 'non-empty-title'],\n none: ['help-same-as-label', 'hidden-explicit-label']\n }, {\n id: 'landmark-banner-is-top-level',\n selector: 'header:not([role]), [role=banner]',\n matches: function matches(node, virtualNode, context) {\n var nativeScopeFilter = 'article, aside, main, nav, section';\n return node.hasAttribute('role') || !axe.commons.dom.findUpVirtual(virtualNode, nativeScopeFilter);\n },\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: ['landmark-is-top-level'],\n none: []\n }, {\n id: 'landmark-complementary-is-top-level',\n selector: 'aside:not([role]), [role=complementary]',\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: ['landmark-is-top-level'],\n none: []\n }, {\n id: 'landmark-contentinfo-is-top-level',\n selector: 'footer:not([role]), [role=contentinfo]',\n matches: function matches(node, virtualNode, context) {\n var nativeScopeFilter = 'article, aside, main, nav, section';\n return node.hasAttribute('role') || !axe.commons.dom.findUpVirtual(virtualNode, nativeScopeFilter);\n },\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: ['landmark-is-top-level'],\n none: []\n }, {\n id: 'landmark-main-is-top-level',\n selector: 'main:not([role]), [role=main]',\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: ['landmark-is-top-level'],\n none: []\n }, {\n id: 'landmark-no-duplicate-banner',\n selector: 'header:not([role]), [role=banner]',\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: [{\n options: {\n selector: 'header:not([role]), [role=banner]',\n nativeScopeFilter: 'article, aside, main, nav, section'\n },\n id: 'page-no-duplicate-banner'\n }],\n none: []\n }, {\n id: 'landmark-no-duplicate-contentinfo',\n selector: 'footer:not([role]), [role=contentinfo]',\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: [{\n options: {\n selector: 'footer:not([role]), [role=contentinfo]',\n nativeScopeFilter: 'article, aside, main, nav, section'\n },\n id: 'page-no-duplicate-contentinfo'\n }],\n none: []\n }, {\n id: 'landmark-no-duplicate-main',\n selector: 'main:not([role]), [role=main]',\n tags: ['cat.semantics', 'best-practice'],\n all: [],\n any: [{\n options: {\n selector: 'main:not([role]), [role=\\'main\\']'\n },\n id: 'page-no-duplicate-main'\n }],\n none: []\n }, {\n id: 'landmark-one-main',\n selector: 'html',\n tags: ['cat.semantics', 'best-practice'],\n all: [{\n options: {\n selector: 'main:not([role]), [role=\\'main\\']'\n },\n id: 'page-has-main'\n }],\n any: [],\n none: []\n }, {\n id: 'landmark-unique',\n selector: '[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section',\n tags: ['cat.semantics', 'best-practice'],\n matches: function matches(node, virtualNode, context) {\n var excludedParentsForHeaderFooterLandmarks = ['article', 'aside', 'main', 'nav', 'section'].join(',');\n\n function isHeaderFooterLandmark(headerFooterElement) {\n return !axe.commons.dom.findUpVirtual(headerFooterElement, excludedParentsForHeaderFooterLandmarks);\n }\n\n function isLandmarkVirtual(virtualNode) {\n var actualNode = virtualNode.actualNode;\n var landmarkRoles = axe.commons.aria.getRolesByType('landmark');\n var role = axe.commons.aria.getRole(actualNode);\n\n if (!role) {\n return false;\n }\n\n var nodeName = actualNode.nodeName.toUpperCase();\n\n if (nodeName === 'HEADER' || nodeName === 'FOOTER') {\n return isHeaderFooterLandmark(virtualNode);\n }\n\n if (nodeName === 'SECTION' || nodeName === 'FORM') {\n var accessibleText = axe.commons.text.accessibleTextVirtual(virtualNode);\n return !!accessibleText;\n }\n\n return landmarkRoles.indexOf(role) >= 0 || role === 'region';\n }\n\n return isLandmarkVirtual(virtualNode) && axe.commons.dom.isVisible(node, true);\n },\n all: [],\n any: ['landmark-is-unique'],\n none: []\n }, {\n id: 'layout-table',\n selector: 'table',\n matches: function matches(node, virtualNode, context) {\n var role = (node.getAttribute('role') || '').toLowerCase();\n return !((role === 'presentation' || role === 'none') && !axe.commons.dom.isFocusable(node)) && !axe.commons.table.isDataTable(node);\n },\n tags: ['cat.semantics', 'wcag2a', 'wcag131', 'deprecated'],\n enabled: false,\n all: [],\n any: [],\n none: ['has-th', 'has-caption', 'has-summary']\n }, {\n id: 'link-in-text-block',\n selector: 'a[href], [role=link]',\n matches: function matches(node, virtualNode, context) {\n var text = axe.commons.text.sanitize(node.textContent);\n var role = node.getAttribute('role');\n\n if (role && role !== 'link') {\n return false;\n }\n\n if (!text) {\n return false;\n }\n\n if (!axe.commons.dom.isVisible(node, false)) {\n return false;\n }\n\n return axe.commons.dom.isInTextBlock(node);\n },\n excludeHidden: false,\n tags: ['cat.color', 'experimental', 'wcag2a', 'wcag141'],\n all: ['link-in-text-block'],\n any: [],\n none: []\n }, {\n id: 'link-name',\n selector: 'a[href]:not([role=button]), [role=link]',\n tags: ['cat.name-role-value', 'wcag2a', 'wcag412', 'wcag244', 'section508', 'section508.22.a'],\n all: [],\n any: ['has-visible-text', 'aria-label', 'aria-labelledby', 'role-presentation', 'role-none'],\n none: ['focusable-no-name']\n }, {\n id: 'list',\n selector: 'ul, ol',\n matches: function matches(node, virtualNode, context) {\n return !node.getAttribute('role');\n },\n tags: ['cat.structure', 'wcag2a', 'wcag131'],\n all: [],\n any: [],\n none: ['only-listitems']\n }, {\n id: 'listitem',\n selector: 'li',\n matches: function matches(node, virtualNode, context) {\n return !node.getAttribute('role');\n },\n tags: ['cat.structure', 'wcag2a', 'wcag131'],\n all: [],\n any: ['listitem'],\n none: []\n }, {\n id: 'marquee',\n selector: 'marquee',\n excludeHidden: false,\n tags: ['cat.parsing', 'wcag2a', 'wcag222'],\n all: [],\n any: [],\n none: ['is-on-screen']\n }, {\n id: 'meta-refresh',\n selector: 'meta[http-equiv=\"refresh\"]',\n excludeHidden: false,\n tags: ['cat.time-and-media', 'wcag2a', 'wcag2aaa', 'wcag221', 'wcag224', 'wcag325'],\n all: [],\n any: ['meta-refresh'],\n none: []\n }, {\n id: 'meta-viewport-large',\n selector: 'meta[name=\"viewport\"]',\n excludeHidden: false,\n tags: ['cat.sensory-and-visual-cues', 'best-practice'],\n all: [],\n any: [{\n options: {\n scaleMinimum: 5,\n lowerBound: 2\n },\n id: 'meta-viewport-large'\n }],\n none: []\n }, {\n id: 'meta-viewport',\n selector: 'meta[name=\"viewport\"]',\n excludeHidden: false,\n tags: ['cat.sensory-and-visual-cues', 'best-practice'],\n all: [],\n any: [{\n options: {\n scaleMinimum: 2\n },\n id: 'meta-viewport'\n }],\n none: []\n }, {\n id: 'no-autoplay-audio',\n excludeHidden: false,\n selector: 'audio[autoplay], video[autoplay]',\n matches: function matches(node, virtualNode, context) {\n if (!node.currentSrc) {\n return false;\n }\n\n if (node.hasAttribute('paused') || node.hasAttribute('muted')) {\n return false;\n }\n\n return true;\n },\n tags: ['wcag2a', 'wcag142', 'experimental'],\n preload: true,\n all: [{\n options: {\n allowedDuration: 3\n },\n id: 'no-autoplay-audio'\n }],\n any: [],\n none: []\n }, {\n id: 'object-alt',\n selector: 'object',\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a'],\n all: [],\n any: ['has-visible-text', 'aria-label', 'aria-labelledby', 'non-empty-title', 'role-presentation', 'role-none'],\n none: []\n }, {\n id: 'p-as-heading',\n selector: 'p',\n matches: function matches(node, virtualNode, context) {\n var children = Array.from(node.parentNode.childNodes);\n var nodeText = node.textContent.trim();\n var isSentence = /[.!?:;](?![.!?:;])/g;\n\n if (nodeText.length === 0 || (nodeText.match(isSentence) || []).length >= 2) {\n return false;\n }\n\n var siblingsAfter = children.slice(children.indexOf(node) + 1).filter(function (elm) {\n return elm.nodeName.toUpperCase() === 'P' && elm.textContent.trim() !== '';\n });\n return siblingsAfter.length !== 0;\n },\n tags: ['cat.semantics', 'wcag2a', 'wcag131', 'experimental'],\n all: [{\n options: {\n margins: [{\n weight: 150,\n italic: true\n }, {\n weight: 150,\n size: 1.15\n }, {\n italic: true,\n size: 1.15\n }, {\n size: 1.4\n }]\n },\n id: 'p-as-heading'\n }],\n any: [],\n none: []\n }, {\n id: 'page-has-heading-one',\n selector: 'html',\n tags: ['cat.semantics', 'best-practice'],\n all: [{\n options: {\n selector: 'h1:not([role]), [role=\"heading\"][aria-level=\"1\"]'\n },\n id: 'page-has-heading-one'\n }],\n any: [],\n none: []\n }, {\n id: 'radiogroup',\n selector: 'input[type=radio][name]',\n tags: ['cat.forms', 'best-practice', 'deprecated'],\n enabled: false,\n all: [],\n any: ['group-labelledby', 'fieldset'],\n none: []\n }, {\n id: 'region',\n selector: 'body *',\n tags: ['cat.keyboard', 'best-practice'],\n all: [],\n any: ['region'],\n none: []\n }, {\n id: 'role-img-alt',\n selector: '[role=\\'img\\']:not(img):not(area):not(input):not(object)',\n matches: function matches(node, virtualNode, context) {\n return node.namespaceURI === 'http://www.w3.org/1999/xhtml';\n },\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a'],\n all: [],\n any: ['aria-label', 'aria-labelledby', 'non-empty-title'],\n none: []\n }, {\n id: 'scope-attr-valid',\n selector: 'td[scope], th[scope]',\n tags: ['cat.tables', 'best-practice'],\n all: ['html5-scope', 'scope-value'],\n any: [],\n none: []\n }, {\n id: 'scrollable-region-focusable',\n matches: function matches(node, virtualNode, context) {\n var querySelectorAll = axe.utils.querySelectorAll;\n var hasContentVirtual = axe.commons.dom.hasContentVirtual;\n\n if (!!axe.utils.getScroll(node, 13) === false) {\n return false;\n }\n\n var nodeAndDescendents = querySelectorAll(virtualNode, '*');\n var hasVisibleChildren = nodeAndDescendents.some(function (elm) {\n return hasContentVirtual(elm, true, true);\n });\n\n if (!hasVisibleChildren) {\n return false;\n }\n\n return true;\n },\n tags: ['wcag2a', 'wcag211'],\n all: [],\n any: ['focusable-content', 'focusable-element'],\n none: []\n }, {\n id: 'server-side-image-map',\n selector: 'img[ismap]',\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag211', 'section508', 'section508.22.f'],\n all: [],\n any: [],\n none: ['exists']\n }, {\n id: 'skip-link',\n selector: 'a[href^=\"#\"], a[href^=\"/#\"]',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.dom.isSkipLink(node) && axe.commons.dom.isOffscreen(node);\n },\n tags: ['cat.keyboard', 'best-practice'],\n all: [],\n any: ['skip-link'],\n none: []\n }, {\n id: 'svg-img-alt',\n selector: '[role=\"img\"], [role=\"graphics-symbol\"], svg[role=\"graphics-document\"]',\n matches: function matches(node, virtualNode, context) {\n return node.namespaceURI === 'http://www.w3.org/2000/svg';\n },\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a'],\n all: [],\n any: ['svg-non-empty-title', 'aria-label', 'aria-labelledby', 'non-empty-title'],\n none: []\n }, {\n id: 'tabindex',\n selector: '[tabindex]',\n tags: ['cat.keyboard', 'best-practice'],\n all: [],\n any: ['tabindex'],\n none: []\n }, {\n id: 'table-duplicate-name',\n selector: 'table',\n tags: ['cat.tables', 'best-practice'],\n all: [],\n any: [],\n none: ['same-caption-summary']\n }, {\n id: 'table-fake-caption',\n selector: 'table',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.table.isDataTable(node);\n },\n tags: ['cat.tables', 'experimental', 'wcag2a', 'wcag131', 'section508', 'section508.22.g'],\n all: ['caption-faked'],\n any: [],\n none: []\n }, {\n id: 'td-has-header',\n selector: 'table',\n matches: function matches(node, virtualNode, context) {\n if (axe.commons.table.isDataTable(node)) {\n var tableArray = axe.commons.table.toArray(node);\n return tableArray.length >= 3 && tableArray[0].length >= 3 && tableArray[1].length >= 3 && tableArray[2].length >= 3;\n }\n\n return false;\n },\n tags: ['cat.tables', 'experimental', 'wcag2a', 'wcag131', 'section508', 'section508.22.g'],\n all: ['td-has-header'],\n any: [],\n none: []\n }, {\n id: 'td-headers-attr',\n selector: 'table',\n tags: ['cat.tables', 'wcag2a', 'wcag131', 'section508', 'section508.22.g'],\n all: ['td-headers-attr'],\n any: [],\n none: []\n }, {\n id: 'th-has-data-cells',\n selector: 'table',\n matches: function matches(node, virtualNode, context) {\n return axe.commons.table.isDataTable(node);\n },\n tags: ['cat.tables', 'wcag2a', 'wcag131', 'section508', 'section508.22.g'],\n all: ['th-has-data-cells'],\n any: [],\n none: []\n }, {\n id: 'valid-lang',\n selector: '[lang], [xml\\\\:lang]',\n matches: function matches(node, virtualNode, context) {\n return node.nodeName.toLowerCase() !== 'html';\n },\n tags: ['cat.language', 'wcag2aa', 'wcag312'],\n all: [],\n any: [],\n none: ['valid-lang']\n }, {\n id: 'video-caption',\n selector: 'video',\n excludeHidden: false,\n tags: ['cat.text-alternatives', 'wcag2a', 'wcag122', 'section508', 'section508.22.a'],\n all: [],\n any: [],\n none: ['caption']\n }, {\n id: 'video-description',\n selector: 'video',\n excludeHidden: false,\n tags: ['cat.text-alternatives', 'wcag2aa', 'wcag125', 'section508', 'section508.22.b', 'deprecated'],\n enabled: false,\n all: [],\n any: [],\n none: ['description']\n }],\n checks: [{\n id: 'abstractrole',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var abstractRoles = axe.utils.tokenList(virtualNode.attr('role')).filter(function (role) {\n return axe.commons.aria.getRoleType(role) === 'abstract';\n });\n\n if (abstractRoles.length > 0) {\n this.data(abstractRoles);\n return true;\n }\n\n return false;\n }\n }, {\n id: 'aria-allowed-attr',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = options || {};\n var invalid = [];\n var attr,\n attrName,\n allowed,\n role = node.getAttribute('role'),\n attrs = axe.utils.getNodeAttributes(node);\n\n if (!role) {\n role = axe.commons.aria.implicitRole(node);\n }\n\n allowed = axe.commons.aria.allowedAttr(role);\n\n if (Array.isArray(options[role])) {\n allowed = axe.utils.uniqueArray(options[role].concat(allowed));\n }\n\n if (role && allowed) {\n for (var i = 0, l = attrs.length; i < l; i++) {\n attr = attrs[i];\n attrName = attr.name;\n\n if (axe.commons.aria.validateAttr(attrName) && !allowed.includes(attrName)) {\n invalid.push(attrName + '=\"' + attr.nodeValue + '\"');\n }\n }\n }\n\n if (invalid.length) {\n this.data(invalid);\n return false;\n }\n\n return true;\n }\n }, {\n id: 'aria-allowed-role',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var dom = axe.commons.dom;\n\n var _ref = options || {},\n _ref$allowImplicit = _ref.allowImplicit,\n allowImplicit = _ref$allowImplicit === void 0 ? true : _ref$allowImplicit,\n _ref$ignoredTags = _ref.ignoredTags,\n ignoredTags = _ref$ignoredTags === void 0 ? [] : _ref$ignoredTags;\n\n var tagName = node.nodeName.toUpperCase();\n\n if (ignoredTags.map(function (t) {\n return t.toUpperCase();\n }).includes(tagName)) {\n return true;\n }\n\n var unallowedRoles = axe.commons.aria.getElementUnallowedRoles(node, allowImplicit);\n\n if (unallowedRoles.length) {\n this.data(unallowedRoles);\n\n if (!dom.isVisible(node, true)) {\n return undefined;\n }\n\n return false;\n }\n\n return true;\n },\n options: {\n allowImplicit: true,\n ignoredTags: []\n }\n }, {\n id: 'aria-hidden-body',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return node.getAttribute('aria-hidden') !== 'true';\n }\n }, {\n id: 'aria-roledescription',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = options || {};\n var role = axe.commons.aria.getRole(node);\n var supportedRoles = options.supportedRoles || [];\n\n if (supportedRoles.includes(role)) {\n return true;\n }\n\n if (role && role !== 'presentation' && role !== 'none') {\n return undefined;\n }\n\n return false;\n },\n options: {\n supportedRoles: ['button', 'img', 'checkbox', 'radio', 'combobox', 'menuitemcheckbox', 'menuitemradio']\n }\n }, {\n id: 'aria-errormessage',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons6 = axe.commons,\n aria = _axe$commons6.aria,\n dom = _axe$commons6.dom;\n options = Array.isArray(options) ? options : [];\n var attr = node.getAttribute('aria-errormessage');\n var hasAttr = node.hasAttribute('aria-errormessage');\n var doc = dom.getRootNode(node);\n\n function validateAttrValue(attr) {\n if (attr.trim() === '') {\n return aria.lookupTable.attributes['aria-errormessage'].allowEmpty;\n }\n\n var idref = attr && doc.getElementById(attr);\n\n if (idref) {\n return idref.getAttribute('role') === 'alert' || idref.getAttribute('aria-live') === 'assertive' || axe.utils.tokenList(node.getAttribute('aria-describedby') || '').indexOf(attr) > -1;\n }\n }\n\n if (options.indexOf(attr) === -1 && hasAttr) {\n if (!validateAttrValue(attr)) {\n this.data(axe.utils.tokenList(attr));\n return false;\n }\n }\n\n return true;\n }\n }, {\n id: 'fallbackrole',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return axe.utils.tokenList(virtualNode.attr('role')).length > 1;\n }\n }, {\n id: 'has-widget-role',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var role = node.getAttribute('role');\n\n if (role === null) {\n return false;\n }\n\n var roleType = axe.commons.aria.getRoleType(role);\n return roleType === 'widget' || roleType === 'composite';\n },\n options: []\n }, {\n id: 'implicit-role-fallback',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var role = node.getAttribute('role');\n\n if (role === null || !axe.commons.aria.isValidRole(role)) {\n return true;\n }\n\n var roleType = axe.commons.aria.getRoleType(role);\n return axe.commons.aria.implicitRole(node) === roleType;\n },\n deprecated: true\n }, {\n id: 'invalidrole',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tokenList = axe.utils.tokenList;\n var aria = axe.commons.aria;\n var allRoles = tokenList(virtualNode.attr('role'));\n var allInvalid = allRoles.every(function (role) {\n return !aria.isValidRole(role, {\n allowAbstract: true\n });\n });\n\n if (allInvalid) {\n this.data(allRoles);\n return true;\n }\n\n return false;\n }\n }, {\n id: 'no-implicit-explicit-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons7 = axe.commons,\n aria = _axe$commons7.aria,\n text = _axe$commons7.text;\n var role = aria.getRole(node, {\n noImplicit: true\n });\n this.data(role);\n var labelText = text.sanitize(text.labelText(virtualNode)).toLowerCase();\n var accText = text.sanitize(text.accessibleText(node)).toLowerCase();\n\n if (!accText && !labelText) {\n return false;\n }\n\n if (!accText && labelText) {\n return undefined;\n }\n\n if (!accText.includes(labelText)) {\n return undefined;\n }\n\n return false;\n }\n }, {\n id: 'aria-required-attr',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = options || {};\n var missing = [];\n var _axe$commons$forms = axe.commons.forms,\n isNativeTextbox = _axe$commons$forms.isNativeTextbox,\n isNativeSelect = _axe$commons$forms.isNativeSelect,\n isAriaTextbox = _axe$commons$forms.isAriaTextbox,\n isAriaListbox = _axe$commons$forms.isAriaListbox,\n isAriaCombobox = _axe$commons$forms.isAriaCombobox,\n isAriaRange = _axe$commons$forms.isAriaRange;\n var preChecks = {\n 'aria-valuenow': function ariaValuenow() {\n return !(isNativeTextbox(node) || isNativeSelect(node) || isAriaTextbox(node) || isAriaListbox(node) || isAriaCombobox(node) || isAriaRange(node) && node.hasAttribute('aria-valuenow'));\n }\n };\n\n if (node.hasAttributes()) {\n var role = node.getAttribute('role');\n var required = axe.commons.aria.requiredAttr(role);\n\n if (Array.isArray(options[role])) {\n required = axe.utils.uniqueArray(options[role], required);\n }\n\n if (role && required) {\n for (var i = 0, l = required.length; i < l; i++) {\n var attr = required[i];\n\n if (!node.getAttribute(attr) && (preChecks[attr] ? preChecks[attr]() : true)) {\n missing.push(attr);\n }\n }\n }\n }\n\n if (missing.length) {\n this.data(missing);\n return false;\n }\n\n return true;\n }\n }, {\n id: 'aria-required-children',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var requiredOwned = axe.commons.aria.requiredOwned;\n var implicitNodes = axe.commons.aria.implicitNodes;\n var matchesSelector = axe.utils.matchesSelector;\n var idrefs = axe.commons.dom.idrefs;\n var hasContentVirtual = axe.commons.dom.hasContentVirtual;\n var reviewEmpty = options && Array.isArray(options.reviewEmpty) ? options.reviewEmpty : [];\n\n function owns(node, virtualTree, role, ariaOwned) {\n if (node === null) {\n return false;\n }\n\n var implicit = implicitNodes(role);\n var selector = ['[role=\"' + role + '\"]'];\n\n if (implicit) {\n selector = selector.concat(implicit.map(function (implicitSelector) {\n return implicitSelector + ':not([role])';\n }));\n }\n\n selector = selector.join(',');\n return ariaOwned ? matchesSelector(node, selector) || !!axe.utils.querySelectorAll(virtualTree, selector)[0] : !!axe.utils.querySelectorAll(virtualTree, selector)[0];\n }\n\n function ariaOwns(nodes, role) {\n for (var index = 0; index < nodes.length; index++) {\n var _node = nodes[index];\n\n if (_node === null) {\n continue;\n }\n\n var virtualTree = axe.utils.getNodeFromTree(_node);\n\n if (owns(_node, virtualTree, role, true)) {\n return true;\n }\n }\n\n return false;\n }\n\n function missingRequiredChildren(node, childRoles, all, role) {\n var missing = [],\n ownedElements = idrefs(node, 'aria-owns');\n\n for (var index = 0; index < childRoles.length; index++) {\n var childRole = childRoles[index];\n\n if (owns(node, virtualNode, childRole) || ariaOwns(ownedElements, childRole)) {\n if (!all) {\n return null;\n }\n } else {\n if (all) {\n missing.push(childRole);\n }\n }\n }\n\n if (role === 'combobox') {\n var textboxIndex = missing.indexOf('textbox');\n var textTypeInputs = ['text', 'search', 'email', 'url', 'tel'];\n\n if (textboxIndex >= 0 && node.nodeName.toUpperCase() === 'INPUT' && textTypeInputs.includes(node.type) || owns(node, virtualNode, 'searchbox') || ariaOwns(ownedElements, 'searchbox')) {\n missing.splice(textboxIndex, 1);\n }\n\n var expandedChildRoles = ['listbox', 'tree', 'grid', 'dialog'];\n var expandedValue = node.getAttribute('aria-expanded');\n var expanded = expandedValue && expandedValue !== 'false';\n var popupRole = (node.getAttribute('aria-haspopup') || 'listbox').toLowerCase();\n\n for (var _index = 0; _index < expandedChildRoles.length; _index++) {\n var expandedChildRole = expandedChildRoles[_index];\n\n if (expanded && expandedChildRole === popupRole) {\n continue;\n }\n\n var missingIndex = missing.indexOf(expandedChildRole);\n\n if (missingIndex >= 0) {\n missing.splice(missingIndex, 1);\n }\n }\n }\n\n if (missing.length) {\n return missing;\n }\n\n if (!all && childRoles.length) {\n return childRoles;\n }\n\n return null;\n }\n\n function hasDecendantWithRole(node) {\n return node.children && node.children.some(function (child) {\n var role = axe.commons.aria.getRole(child);\n return !['presentation', 'none', null].includes(role) || hasDecendantWithRole(child);\n });\n }\n\n var role = node.getAttribute('role');\n var required = requiredOwned(role);\n\n if (!required) {\n return true;\n }\n\n var all = false;\n var childRoles = required.one;\n\n if (!childRoles) {\n all = true;\n childRoles = required.all;\n }\n\n var missing = missingRequiredChildren(node, childRoles, all, role);\n\n if (!missing) {\n return true;\n }\n\n this.data(missing);\n\n if (reviewEmpty.includes(role) && !hasContentVirtual(virtualNode, false, true) && !hasDecendantWithRole(virtualNode) && idrefs(node, 'aria-owns').length === 0) {\n return undefined;\n } else {\n return false;\n }\n },\n options: {\n reviewEmpty: ['doc-bibliography', 'doc-endnotes', 'grid', 'list', 'listbox', 'table', 'tablist', 'tree', 'treegrid', 'rowgroup']\n }\n }, {\n id: 'aria-required-parent',\n evaluate: function evaluate(node, options, virtualNode, context) {\n function getSelector(role) {\n var impliedNative = axe.commons.aria.implicitNodes(role) || [];\n return impliedNative.concat('[role=\"' + role + '\"]').join(',');\n }\n\n function getMissingContext(virtualNode, requiredContext, includeElement) {\n var index,\n length,\n role = virtualNode.actualNode.getAttribute('role'),\n missing = [];\n\n if (!requiredContext) {\n requiredContext = axe.commons.aria.requiredContext(role);\n }\n\n if (!requiredContext) {\n return null;\n }\n\n for (index = 0, length = requiredContext.length; index < length; index++) {\n if (includeElement && axe.utils.matchesSelector(virtualNode.actualNode, getSelector(requiredContext[index]))) {\n return null;\n }\n\n if (axe.commons.dom.findUpVirtual(virtualNode, getSelector(requiredContext[index]))) {\n return null;\n } else {\n missing.push(requiredContext[index]);\n }\n }\n\n return missing;\n }\n\n function getAriaOwners(element) {\n var owners = [],\n o = null;\n\n while (element) {\n if (element.getAttribute('id')) {\n var id = axe.utils.escapeSelector(element.getAttribute('id'));\n var doc = axe.commons.dom.getRootNode(element);\n o = doc.querySelector('[aria-owns~='.concat(id, ']'));\n\n if (o) {\n owners.push(o);\n }\n }\n\n element = element.parentElement;\n }\n\n return owners.length ? owners : null;\n }\n\n var missingParents = getMissingContext(virtualNode);\n\n if (!missingParents) {\n return true;\n }\n\n var owners = getAriaOwners(node);\n\n if (owners) {\n for (var i = 0, l = owners.length; i < l; i++) {\n missingParents = getMissingContext(axe.utils.getNodeFromTree(owners[i]), missingParents, true);\n\n if (!missingParents) {\n return true;\n }\n }\n }\n\n this.data(missingParents);\n return false;\n }\n }, {\n id: 'aria-unsupported-attr',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var nodeName = node.nodeName.toUpperCase();\n var lookupTable = axe.commons.aria.lookupTable;\n var role = axe.commons.aria.getRole(node);\n var unsupportedAttrs = Array.from(axe.utils.getNodeAttributes(node)).filter(function (_ref2) {\n var name = _ref2.name;\n var attribute = lookupTable.attributes[name];\n\n if (!axe.commons.aria.validateAttr(name)) {\n return false;\n }\n\n var unsupported = attribute.unsupported;\n\n if (_typeof(unsupported) !== 'object') {\n return !!unsupported;\n }\n\n var isException = axe.commons.matches(node, unsupported.exceptions);\n\n if (!Object.keys(lookupTable.evaluateRoleForElement).includes(nodeName)) {\n return !isException;\n }\n\n return !lookupTable.evaluateRoleForElement[nodeName]({\n node: node,\n role: role,\n out: isException\n });\n }).map(function (candidate) {\n return candidate.name.toString();\n });\n\n if (unsupportedAttrs.length) {\n this.data(unsupportedAttrs);\n return true;\n }\n\n return false;\n }\n }, {\n id: 'unsupportedrole',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return axe.commons.aria.isUnsupportedRole(axe.commons.aria.getRole(node));\n }\n }, {\n id: 'aria-valid-attr-value',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = Array.isArray(options) ? options : [];\n var needsReview = '';\n var messageKey = '';\n var invalid = [];\n var aria = /^aria-/;\n var attrs = axe.utils.getNodeAttributes(node);\n var skipAttrs = ['aria-errormessage'];\n var preChecks = {\n 'aria-controls': function ariaControls() {\n return node.getAttribute('aria-expanded') !== 'false' && node.getAttribute('aria-selected') !== 'false';\n },\n 'aria-current': function ariaCurrent() {\n if (!axe.commons.aria.validateAttrValue(node, 'aria-current')) {\n needsReview = 'aria-current=\"'.concat(node.getAttribute('aria-current'), '\"');\n messageKey = 'ariaCurrent';\n }\n\n return;\n },\n 'aria-owns': function ariaOwns() {\n return node.getAttribute('aria-expanded') !== 'false';\n },\n 'aria-describedby': function ariaDescribedby() {\n if (!axe.commons.aria.validateAttrValue(node, 'aria-describedby')) {\n needsReview = 'aria-describedby=\"'.concat(node.getAttribute('aria-describedby'), '\"');\n messageKey = 'noId';\n }\n\n return;\n }\n };\n\n for (var i = 0, l = attrs.length; i < l; i++) {\n var attr = attrs[i];\n var attrName = attr.name;\n\n if (!skipAttrs.includes(attrName) && options.indexOf(attrName) === -1 && aria.test(attrName) && (preChecks[attrName] ? preChecks[attrName]() : true) && !axe.commons.aria.validateAttrValue(node, attrName)) {\n invalid.push(''.concat(attrName, '=\"').concat(attr.nodeValue, '\"'));\n }\n }\n\n if (needsReview) {\n this.data({\n messageKey: messageKey,\n needsReview: needsReview\n });\n return undefined;\n }\n\n if (invalid.length) {\n this.data(invalid);\n return false;\n }\n\n return true;\n },\n options: []\n }, {\n id: 'aria-valid-attr',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = Array.isArray(options) ? options : [];\n var invalid = [],\n aria = /^aria-/;\n var attr,\n attrs = axe.utils.getNodeAttributes(node);\n\n for (var i = 0, l = attrs.length; i < l; i++) {\n attr = attrs[i].name;\n\n if (options.indexOf(attr) === -1 && aria.test(attr) && !axe.commons.aria.validateAttr(attr)) {\n invalid.push(attr);\n }\n }\n\n if (invalid.length) {\n this.data(invalid);\n return false;\n }\n\n return true;\n },\n options: []\n }, {\n id: 'valid-scrollable-semantics',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS = {\n ARTICLE: true,\n ASIDE: true,\n NAV: true,\n SECTION: true\n };\n var VALID_ROLES_FOR_SCROLLABLE_REGIONS = {\n application: true,\n banner: false,\n complementary: true,\n contentinfo: true,\n form: true,\n main: true,\n navigation: true,\n region: true,\n search: false\n };\n\n function validScrollableTagName(node) {\n var nodeName = node.nodeName.toUpperCase();\n return VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS[nodeName] || false;\n }\n\n function validScrollableRole(node) {\n var role = node.getAttribute('role');\n\n if (!role) {\n return false;\n }\n\n return VALID_ROLES_FOR_SCROLLABLE_REGIONS[role.toLowerCase()] || false;\n }\n\n function validScrollableSemantics(node) {\n return validScrollableRole(node) || validScrollableTagName(node);\n }\n\n return validScrollableSemantics(node);\n },\n options: []\n }, {\n id: 'color-contrast',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons8 = axe.commons,\n dom = _axe$commons8.dom,\n color = _axe$commons8.color,\n text = _axe$commons8.text;\n\n if (!dom.isVisible(node, false)) {\n return true;\n }\n\n var visibleText = text.visibleVirtual(virtualNode, false, true);\n var ignoreUnicode = !!(options || {}).ignoreUnicode;\n var textContainsOnlyUnicode = text.hasUnicode(visibleText, {\n nonBmp: true\n }) && text.sanitize(text.removeUnicode(visibleText, {\n nonBmp: true\n })) === '';\n\n if (textContainsOnlyUnicode && ignoreUnicode) {\n this.data({\n messageKey: 'nonBmp'\n });\n return undefined;\n }\n\n var noScroll = !!(options || {}).noScroll;\n var bgNodes = [];\n var bgColor = color.getBackgroundColor(node, bgNodes, noScroll);\n var fgColor = color.getForegroundColor(node, noScroll, bgColor);\n var nodeStyle = window.getComputedStyle(node);\n var fontSize = parseFloat(nodeStyle.getPropertyValue('font-size'));\n var fontWeight = nodeStyle.getPropertyValue('font-weight');\n var bold = parseFloat(fontWeight) >= 700 || fontWeight === 'bold';\n var cr = color.hasValidContrastRatio(bgColor, fgColor, fontSize, bold);\n var truncatedResult = Math.floor(cr.contrastRatio * 100) / 100;\n var missing;\n\n if (bgColor === null) {\n missing = color.incompleteData.get('bgColor');\n }\n\n var equalRatio = truncatedResult === 1;\n var shortTextContent = visibleText.length === 1;\n var ignoreLength = !!(options || {}).ignoreLength;\n\n if (equalRatio) {\n missing = color.incompleteData.set('bgColor', 'equalRatio');\n } else if (shortTextContent && !ignoreLength) {\n missing = 'shortTextContent';\n }\n\n var data = {\n fgColor: fgColor ? fgColor.toHexString() : undefined,\n bgColor: bgColor ? bgColor.toHexString() : undefined,\n contrastRatio: cr ? truncatedResult : undefined,\n fontSize: ''.concat((fontSize * 72 / 96).toFixed(1), 'pt (').concat(fontSize, 'px)'),\n fontWeight: bold ? 'bold' : 'normal',\n messageKey: missing,\n expectedContrastRatio: cr.expectedContrastRatio + ':1'\n };\n this.data(data);\n\n if (fgColor === null || bgColor === null || equalRatio || shortTextContent && !ignoreLength && !cr.isValid) {\n missing = null;\n color.incompleteData.clear();\n this.relatedNodes(bgNodes);\n return undefined;\n }\n\n if (!cr.isValid) {\n this.relatedNodes(bgNodes);\n }\n\n return cr.isValid;\n },\n options: {\n noScroll: false,\n ignoreUnicode: true,\n ignoreLength: false\n }\n }, {\n id: 'link-in-text-block',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons9 = axe.commons,\n color = _axe$commons9.color,\n dom = _axe$commons9.dom;\n\n function getContrast(color1, color2) {\n var c1lum = color1.getRelativeLuminance();\n var c2lum = color2.getRelativeLuminance();\n return (Math.max(c1lum, c2lum) + .05) / (Math.min(c1lum, c2lum) + .05);\n }\n\n var blockLike = ['block', 'list-item', 'table', 'flex', 'grid', 'inline-block'];\n\n function isBlock(elm) {\n var display = window.getComputedStyle(elm).getPropertyValue('display');\n return blockLike.indexOf(display) !== -1 || display.substr(0, 6) === 'table-';\n }\n\n if (isBlock(node)) {\n return false;\n }\n\n var parentBlock = dom.getComposedParent(node);\n\n while (parentBlock.nodeType === 1 && !isBlock(parentBlock)) {\n parentBlock = dom.getComposedParent(parentBlock);\n }\n\n this.relatedNodes([parentBlock]);\n\n if (color.elementIsDistinct(node, parentBlock)) {\n return true;\n } else {\n var nodeColor, parentColor;\n nodeColor = color.getForegroundColor(node);\n parentColor = color.getForegroundColor(parentBlock);\n\n if (!nodeColor || !parentColor) {\n return undefined;\n }\n\n var contrast = getContrast(nodeColor, parentColor);\n\n if (contrast === 1) {\n return true;\n } else if (contrast >= 3) {\n axe.commons.color.incompleteData.set('fgColor', 'bgContrast');\n this.data({\n messageKey: axe.commons.color.incompleteData.get('fgColor')\n });\n axe.commons.color.incompleteData.clear();\n return undefined;\n }\n\n nodeColor = color.getBackgroundColor(node);\n parentColor = color.getBackgroundColor(parentBlock);\n\n if (!nodeColor || !parentColor || getContrast(nodeColor, parentColor) >= 3) {\n var reason;\n\n if (!nodeColor || !parentColor) {\n reason = axe.commons.color.incompleteData.get('bgColor');\n } else {\n reason = 'bgContrast';\n }\n\n axe.commons.color.incompleteData.set('fgColor', reason);\n this.data({\n messageKey: axe.commons.color.incompleteData.get('fgColor')\n });\n axe.commons.color.incompleteData.clear();\n return undefined;\n }\n }\n\n return false;\n }\n }, {\n id: 'autocomplete-appropriate',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (virtualNode.props.nodeName !== 'input') {\n return true;\n }\n\n var number = ['text', 'search', 'number'];\n var url = ['text', 'search', 'url'];\n var allowedTypesMap = {\n bday: ['text', 'search', 'date'],\n email: ['text', 'search', 'email'],\n 'cc-exp': ['text', 'search', 'month'],\n 'street-address': ['text'],\n tel: ['text', 'search', 'tel'],\n 'cc-exp-month': number,\n 'cc-exp-year': number,\n 'transaction-amount': number,\n 'bday-day': number,\n 'bday-month': number,\n 'bday-year': number,\n 'new-password': ['text', 'search', 'password'],\n 'current-password': ['text', 'search', 'password'],\n url: url,\n photo: url,\n impp: url\n };\n\n if (_typeof(options) === 'object') {\n Object.keys(options).forEach(function (key) {\n if (!allowedTypesMap[key]) {\n allowedTypesMap[key] = [];\n }\n\n allowedTypesMap[key] = allowedTypesMap[key].concat(options[key]);\n });\n }\n\n var autocomplete = virtualNode.attr('autocomplete');\n var autocompleteTerms = autocomplete.split(/\\s+/g).map(function (term) {\n return term.toLowerCase();\n });\n var purposeTerm = autocompleteTerms[autocompleteTerms.length - 1];\n\n if (axe.commons.text.autocomplete.stateTerms.includes(purposeTerm)) {\n return true;\n }\n\n var allowedTypes = allowedTypesMap[purposeTerm];\n var type = virtualNode.hasAttr('type') ? axe.commons.text.sanitize(virtualNode.attr('type')).toLowerCase() : 'text';\n type = axe.utils.validInputTypes().includes(type) ? type : 'text';\n\n if (typeof allowedTypes === 'undefined') {\n return type === 'text';\n }\n\n return allowedTypes.includes(type);\n }\n }, {\n id: 'autocomplete-valid',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var autocomplete = virtualNode.attr('autocomplete') || '';\n return axe.commons.text.isValidAutocomplete(autocomplete, options);\n }\n }, {\n id: 'fieldset',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var failureCode,\n self = this;\n\n function getUnrelatedElements(parent, name) {\n return axe.utils.toArray(parent.querySelectorAll('select,textarea,button,input:not([name=\"' + name + '\"]):not([type=\"hidden\"])'));\n }\n\n function checkFieldset(group, name) {\n var firstNode = group.firstElementChild;\n\n if (!firstNode || firstNode.nodeName.toUpperCase() !== 'LEGEND') {\n self.relatedNodes([group]);\n failureCode = 'no-legend';\n return false;\n }\n\n if (!axe.commons.text.accessibleText(firstNode)) {\n self.relatedNodes([firstNode]);\n failureCode = 'empty-legend';\n return false;\n }\n\n var otherElements = getUnrelatedElements(group, name);\n\n if (otherElements.length) {\n self.relatedNodes(otherElements);\n failureCode = 'mixed-inputs';\n return false;\n }\n\n return true;\n }\n\n function checkARIAGroup(group, name) {\n var hasLabelledByText = axe.commons.dom.idrefs(group, 'aria-labelledby').some(function (element) {\n return element && axe.commons.text.accessibleText(element);\n });\n var ariaLabel = group.getAttribute('aria-label');\n\n if (!hasLabelledByText && !(ariaLabel && axe.commons.text.sanitize(ariaLabel))) {\n self.relatedNodes(group);\n failureCode = 'no-group-label';\n return false;\n }\n\n var otherElements = getUnrelatedElements(group, name);\n\n if (otherElements.length) {\n self.relatedNodes(otherElements);\n failureCode = 'group-mixed-inputs';\n return false;\n }\n\n return true;\n }\n\n function spliceCurrentNode(nodes, current) {\n return axe.utils.toArray(nodes).filter(function (candidate) {\n return candidate !== current;\n });\n }\n\n function runCheck(virtualNode) {\n var name = axe.utils.escapeSelector(virtualNode.actualNode.name);\n var root = axe.commons.dom.getRootNode(virtualNode.actualNode);\n var matchingNodes = root.querySelectorAll('input[type=\"' + axe.utils.escapeSelector(virtualNode.actualNode.type) + '\"][name=\"' + name + '\"]');\n\n if (matchingNodes.length < 2) {\n return true;\n }\n\n var fieldset = axe.commons.dom.findUpVirtual(virtualNode, 'fieldset');\n var group = axe.commons.dom.findUpVirtual(virtualNode, '[role=\"group\"]' + (virtualNode.actualNode.type === 'radio' ? ',[role=\"radiogroup\"]' : ''));\n\n if (!group && !fieldset) {\n failureCode = 'no-group';\n self.relatedNodes(spliceCurrentNode(matchingNodes, virtualNode.actualNode));\n return false;\n } else if (fieldset) {\n return checkFieldset(fieldset, name);\n } else {\n return checkARIAGroup(group, name);\n }\n }\n\n var data = {\n name: node.getAttribute('name'),\n type: node.getAttribute('type')\n };\n var result = runCheck(virtualNode);\n\n if (!result) {\n data.messageKey = failureCode;\n }\n\n this.data(data);\n return result;\n },\n after: function after(results, options) {\n var seen = {};\n return results.filter(function (result) {\n if (result.result) {\n return true;\n }\n\n var data = result.data;\n\n if (data) {\n seen[data.type] = seen[data.type] || {};\n\n if (!seen[data.type][data.name]) {\n seen[data.type][data.name] = [data];\n return true;\n }\n\n var hasBeenSeen = seen[data.type][data.name].some(function (candidate) {\n return candidate.failureCode === data.failureCode;\n });\n\n if (!hasBeenSeen) {\n seen[data.type][data.name].push(data);\n }\n\n return !hasBeenSeen;\n }\n\n return false;\n });\n },\n deprecated: true\n }, {\n id: 'group-labelledby',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons10 = axe.commons,\n dom = _axe$commons10.dom,\n text = _axe$commons10.text;\n var type = axe.utils.escapeSelector(node.type);\n var name = axe.utils.escapeSelector(node.name);\n var doc = dom.getRootNode(node);\n var data = {\n name: node.name,\n type: node.type\n };\n var matchingNodes = Array.from(doc.querySelectorAll('input[type=\"'.concat(type, '\"][name=\"').concat(name, '\"]')));\n\n if (matchingNodes.length <= 1) {\n this.data(data);\n return true;\n }\n\n var sharedLabels = dom.idrefs(node, 'aria-labelledby').filter(function (label) {\n return !!label;\n });\n var uniqueLabels = sharedLabels.slice();\n matchingNodes.forEach(function (groupItem) {\n if (groupItem === node) {\n return;\n }\n\n var labels = dom.idrefs(groupItem, 'aria-labelledby').filter(function (newLabel) {\n return newLabel;\n });\n sharedLabels = sharedLabels.filter(function (sharedLabel) {\n return labels.includes(sharedLabel);\n });\n uniqueLabels = uniqueLabels.filter(function (uniqueLabel) {\n return !labels.includes(uniqueLabel);\n });\n });\n var accessibleTextOptions = {\n inLabelledByContext: true\n };\n uniqueLabels = uniqueLabels.filter(function (labelNode) {\n return text.accessibleText(labelNode, accessibleTextOptions);\n });\n sharedLabels = sharedLabels.filter(function (labelNode) {\n return text.accessibleText(labelNode, accessibleTextOptions);\n });\n\n if (uniqueLabels.length > 0 && sharedLabels.length > 0) {\n this.data(data);\n return true;\n }\n\n if (uniqueLabels.length > 0 && sharedLabels.length === 0) {\n data.messageKey = 'no-shared-label';\n } else if (uniqueLabels.length === 0 && sharedLabels.length > 0) {\n data.messageKey = 'no-unique-label';\n }\n\n this.data(data);\n return false;\n },\n after: function after(results, options) {\n var seen = {};\n return results.filter(function (result) {\n var data = result.data;\n\n if (data) {\n seen[data.type] = seen[data.type] || {};\n\n if (!seen[data.type][data.name]) {\n seen[data.type][data.name] = true;\n return true;\n }\n }\n\n return false;\n });\n },\n deprecated: true\n }, {\n id: 'accesskeys',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (axe.commons.dom.isVisible(node, false)) {\n this.data(node.getAttribute('accesskey'));\n this.relatedNodes([node]);\n }\n\n return true;\n },\n after: function after(results, options) {\n var seen = {};\n return results.filter(function (r) {\n if (!r.data) {\n return false;\n }\n\n var key = r.data.toUpperCase();\n\n if (!seen[key]) {\n seen[key] = r;\n r.relatedNodes = [];\n return true;\n }\n\n seen[key].relatedNodes.push(r.relatedNodes[0]);\n return false;\n }).map(function (r) {\n r.result = !!r.relatedNodes.length;\n return r;\n });\n }\n }, {\n id: 'focusable-content',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tabbableElements = virtualNode.tabbableElements;\n\n if (!tabbableElements) {\n return false;\n }\n\n var tabbableContentElements = tabbableElements.filter(function (el) {\n return el !== virtualNode;\n });\n return tabbableContentElements.length > 0;\n }\n }, {\n id: 'focusable-disabled',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var elementsThatCanBeDisabled = ['BUTTON', 'FIELDSET', 'INPUT', 'SELECT', 'TEXTAREA'];\n var tabbableElements = virtualNode.tabbableElements;\n\n if (!tabbableElements || !tabbableElements.length) {\n return true;\n }\n\n var relatedNodes = tabbableElements.reduce(function (out, _ref3) {\n var el = _ref3.actualNode;\n var nodeName = el.nodeName.toUpperCase();\n\n if (elementsThatCanBeDisabled.includes(nodeName)) {\n out.push(el);\n }\n\n return out;\n }, []);\n this.relatedNodes(relatedNodes);\n\n if (relatedNodes.length && axe.commons.dom.isModalOpen()) {\n return true;\n }\n\n return relatedNodes.length === 0;\n }\n }, {\n id: 'focusable-element',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var isFocusable = virtualNode.isFocusable;\n var tabIndex = parseInt(virtualNode.actualNode.getAttribute('tabindex'), 10);\n tabIndex = !isNaN(tabIndex) ? tabIndex : null;\n return tabIndex ? isFocusable && tabIndex >= 0 : isFocusable;\n }\n }, {\n id: 'focusable-modal-open',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tabbableElements = virtualNode.tabbableElements.map(function (_ref4) {\n var actualNode = _ref4.actualNode;\n return actualNode;\n });\n\n if (!tabbableElements || !tabbableElements.length) {\n return true;\n }\n\n if (axe.commons.dom.isModalOpen()) {\n this.relatedNodes(tabbableElements);\n return undefined;\n }\n\n return true;\n }\n }, {\n id: 'focusable-no-name',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tabIndex = node.getAttribute('tabindex'),\n inFocusOrder = axe.commons.dom.isFocusable(node) && tabIndex > -1;\n\n if (!inFocusOrder) {\n return false;\n }\n\n return !axe.commons.text.accessibleTextVirtual(virtualNode);\n }\n }, {\n id: 'focusable-not-tabbable',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var elementsThatCanBeDisabled = ['BUTTON', 'FIELDSET', 'INPUT', 'SELECT', 'TEXTAREA'];\n var tabbableElements = virtualNode.tabbableElements;\n\n if (!tabbableElements || !tabbableElements.length) {\n return true;\n }\n\n var relatedNodes = tabbableElements.reduce(function (out, _ref5) {\n var el = _ref5.actualNode;\n var nodeName = el.nodeName.toUpperCase();\n\n if (!elementsThatCanBeDisabled.includes(nodeName)) {\n out.push(el);\n }\n\n return out;\n }, []);\n this.relatedNodes(relatedNodes);\n\n if (relatedNodes.length > 0 && axe.commons.dom.isModalOpen()) {\n return true;\n }\n\n return relatedNodes.length === 0;\n }\n }, {\n id: 'landmark-is-top-level',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var landmarks = axe.commons.aria.getRolesByType('landmark');\n var parent = axe.commons.dom.getComposedParent(node);\n this.data({\n role: node.getAttribute('role') || axe.commons.aria.implicitRole(node)\n });\n\n while (parent) {\n var role = parent.getAttribute('role');\n\n if (!role && parent.nodeName.toUpperCase() !== 'FORM') {\n role = axe.commons.aria.implicitRole(parent);\n }\n\n if (role && landmarks.includes(role)) {\n return false;\n }\n\n parent = axe.commons.dom.getComposedParent(parent);\n }\n\n return true;\n }\n }, {\n id: 'page-has-heading-one',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!options || !options.selector || typeof options.selector !== 'string') {\n throw new TypeError('visible-in-page requires options.selector to be a string');\n }\n\n var matchingElms = axe.utils.querySelectorAllFilter(virtualNode, options.selector, function (vNode) {\n return axe.commons.dom.isVisible(vNode.actualNode, true);\n });\n this.relatedNodes(matchingElms.map(function (vNode) {\n return vNode.actualNode;\n }));\n return matchingElms.length > 0;\n },\n after: function after(results, options) {\n var elmUsedAnywhere = results.some(function (frameResult) {\n return frameResult.result === true;\n });\n\n if (elmUsedAnywhere) {\n results.forEach(function (result) {\n result.result = true;\n });\n }\n\n return results;\n },\n options: {\n selector: 'h1:not([role]), [role=\"heading\"][aria-level=\"1\"]'\n }\n }, {\n id: 'page-has-main',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!options || !options.selector || typeof options.selector !== 'string') {\n throw new TypeError('visible-in-page requires options.selector to be a string');\n }\n\n var matchingElms = axe.utils.querySelectorAllFilter(virtualNode, options.selector, function (vNode) {\n return axe.commons.dom.isVisible(vNode.actualNode, true);\n });\n this.relatedNodes(matchingElms.map(function (vNode) {\n return vNode.actualNode;\n }));\n return matchingElms.length > 0;\n },\n after: function after(results, options) {\n var elmUsedAnywhere = results.some(function (frameResult) {\n return frameResult.result === true;\n });\n\n if (elmUsedAnywhere) {\n results.forEach(function (result) {\n result.result = true;\n });\n }\n\n return results;\n },\n options: {\n selector: 'main:not([role]), [role=\\'main\\']'\n }\n }, {\n id: 'page-no-duplicate-banner',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!options || !options.selector || typeof options.selector !== 'string') {\n throw new TypeError('visible-in-page requires options.selector to be a string');\n }\n\n var key = 'page-no-duplicate;' + options.selector;\n\n if (axe._cache.get(key)) {\n this.data('ignored');\n return;\n }\n\n axe._cache.set(key, true);\n\n var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function (elm) {\n return axe.commons.dom.isVisible(elm.actualNode);\n });\n\n if (typeof options.nativeScopeFilter === 'string') {\n elms = elms.filter(function (elm) {\n return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);\n });\n }\n\n this.relatedNodes(elms.filter(function (elm) {\n return elm !== virtualNode;\n }).map(function (elm) {\n return elm.actualNode;\n }));\n return elms.length <= 1;\n },\n after: function after(results, options) {\n return results.filter(function (checkResult) {\n return checkResult.data !== 'ignored';\n });\n },\n options: {\n selector: 'header:not([role]), [role=banner]',\n nativeScopeFilter: 'article, aside, main, nav, section'\n }\n }, {\n id: 'page-no-duplicate-contentinfo',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!options || !options.selector || typeof options.selector !== 'string') {\n throw new TypeError('visible-in-page requires options.selector to be a string');\n }\n\n var key = 'page-no-duplicate;' + options.selector;\n\n if (axe._cache.get(key)) {\n this.data('ignored');\n return;\n }\n\n axe._cache.set(key, true);\n\n var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function (elm) {\n return axe.commons.dom.isVisible(elm.actualNode);\n });\n\n if (typeof options.nativeScopeFilter === 'string') {\n elms = elms.filter(function (elm) {\n return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);\n });\n }\n\n this.relatedNodes(elms.filter(function (elm) {\n return elm !== virtualNode;\n }).map(function (elm) {\n return elm.actualNode;\n }));\n return elms.length <= 1;\n },\n after: function after(results, options) {\n return results.filter(function (checkResult) {\n return checkResult.data !== 'ignored';\n });\n },\n options: {\n selector: 'footer:not([role]), [role=contentinfo]',\n nativeScopeFilter: 'article, aside, main, nav, section'\n }\n }, {\n id: 'page-no-duplicate-main',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!options || !options.selector || typeof options.selector !== 'string') {\n throw new TypeError('visible-in-page requires options.selector to be a string');\n }\n\n var key = 'page-no-duplicate;' + options.selector;\n\n if (axe._cache.get(key)) {\n this.data('ignored');\n return;\n }\n\n axe._cache.set(key, true);\n\n var elms = axe.utils.querySelectorAllFilter(axe._tree[0], options.selector, function (elm) {\n return axe.commons.dom.isVisible(elm.actualNode);\n });\n\n if (typeof options.nativeScopeFilter === 'string') {\n elms = elms.filter(function (elm) {\n return elm.actualNode.hasAttribute('role') || !axe.commons.dom.findUpVirtual(elm, options.nativeScopeFilter);\n });\n }\n\n this.relatedNodes(elms.filter(function (elm) {\n return elm !== virtualNode;\n }).map(function (elm) {\n return elm.actualNode;\n }));\n return elms.length <= 1;\n },\n after: function after(results, options) {\n return results.filter(function (checkResult) {\n return checkResult.data !== 'ignored';\n });\n },\n options: {\n selector: 'main:not([role]), [role=\\'main\\']'\n }\n }, {\n id: 'tabindex',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tabIndex = parseInt(node.getAttribute('tabindex'), 10);\n return isNaN(tabIndex) ? true : tabIndex <= 0;\n }\n }, {\n id: 'alt-space-value',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var alt = virtualNode.attr('alt');\n var isOnlySpace = /^\\s+$/;\n return typeof alt === 'string' && isOnlySpace.test(alt);\n }\n }, {\n id: 'duplicate-img-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons11 = axe.commons,\n aria = _axe$commons11.aria,\n text = _axe$commons11.text,\n dom = _axe$commons11.dom;\n\n if (['none', 'presentation'].includes(aria.getRole(node))) {\n return false;\n }\n\n var parent = dom.findUpVirtual(virtualNode, 'button, [role=\"button\"], a[href], p, li, td, th');\n\n if (!parent) {\n return false;\n }\n\n var parentVNode = axe.utils.getNodeFromTree(parent);\n var visibleText = text.visibleVirtual(parentVNode, true).toLowerCase();\n\n if (visibleText === '') {\n return false;\n }\n\n return visibleText === text.accessibleTextVirtual(virtualNode).toLowerCase();\n }\n }, {\n id: 'explicit-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (node.getAttribute('id')) {\n var root = axe.commons.dom.getRootNode(node);\n var id = axe.utils.escapeSelector(node.getAttribute('id'));\n var label = root.querySelector('label[for=\"'.concat(id, '\"]'));\n\n if (label) {\n if (!axe.commons.dom.isVisible(label)) {\n return true;\n } else {\n return !!axe.commons.text.accessibleText(label);\n }\n }\n }\n\n return false;\n }\n }, {\n id: 'help-same-as-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var labelText = axe.commons.text.labelVirtual(virtualNode),\n check = node.getAttribute('title');\n\n if (!labelText) {\n return false;\n }\n\n if (!check) {\n check = '';\n\n if (node.getAttribute('aria-describedby')) {\n var ref = axe.commons.dom.idrefs(node, 'aria-describedby');\n check = ref.map(function (thing) {\n return thing ? axe.commons.text.accessibleText(thing) : '';\n }).join('');\n }\n }\n\n return axe.commons.text.sanitize(check) === axe.commons.text.sanitize(labelText);\n },\n enabled: false\n }, {\n id: 'hidden-explicit-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (node.getAttribute('id')) {\n var root = axe.commons.dom.getRootNode(node);\n var id = axe.utils.escapeSelector(node.getAttribute('id'));\n var label = root.querySelector('label[for=\"'.concat(id, '\"]'));\n\n if (label && !axe.commons.dom.isVisible(label, true)) {\n var name = axe.commons.text.accessibleTextVirtual(virtualNode).trim();\n var isNameEmpty = name === '';\n return isNameEmpty;\n }\n }\n\n return false;\n }\n }, {\n id: 'implicit-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons12 = axe.commons,\n dom = _axe$commons12.dom,\n text = _axe$commons12.text;\n var label = dom.findUpVirtual(virtualNode, 'label');\n\n if (label) {\n return !!text.accessibleText(label, {\n inControlContext: true\n });\n }\n\n return false;\n }\n }, {\n id: 'label-content-name-mismatch',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var text = axe.commons.text;\n\n var _ref6 = options || {},\n pixelThreshold = _ref6.pixelThreshold,\n occuranceThreshold = _ref6.occuranceThreshold;\n\n var accText = text.accessibleText(node).toLowerCase();\n\n if (text.isHumanInterpretable(accText) < 1) {\n return undefined;\n }\n\n var textVNodes = text.visibleTextNodes(virtualNode);\n var nonLigatureText = textVNodes.filter(function (textVNode) {\n return !text.isIconLigature(textVNode, pixelThreshold, occuranceThreshold);\n }).map(function (textVNode) {\n return textVNode.actualNode.nodeValue;\n }).join('');\n var visibleText = text.sanitize(nonLigatureText).toLowerCase();\n\n if (!visibleText) {\n return true;\n }\n\n if (text.isHumanInterpretable(visibleText) < 1) {\n if (isStringContained(visibleText, accText)) {\n return true;\n }\n\n return undefined;\n }\n\n return isStringContained(visibleText, accText);\n\n function isStringContained(compare, compareWith) {\n var curatedCompareWith = curateString(compareWith);\n var curatedCompare = curateString(compare);\n\n if (!curatedCompareWith || !curatedCompare) {\n return false;\n }\n\n return curatedCompareWith.includes(curatedCompare);\n }\n\n function curateString(str) {\n var noUnicodeStr = text.removeUnicode(str, {\n emoji: true,\n nonBmp: true,\n punctuations: true\n });\n return text.sanitize(noUnicodeStr);\n }\n },\n options: {\n pixelThreshold: .1,\n occuranceThreshold: 3\n }\n }, {\n id: 'multiple-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var id = axe.utils.escapeSelector(node.getAttribute('id'));\n var parent = node.parentNode;\n var root = axe.commons.dom.getRootNode(node);\n root = root.documentElement || root;\n var labels = Array.from(root.querySelectorAll('label[for=\"'.concat(id, '\"]')));\n\n if (labels.length) {\n labels = labels.filter(function (label) {\n return axe.commons.dom.isVisible(label);\n });\n }\n\n while (parent) {\n if (parent.nodeName.toUpperCase() === 'LABEL' && labels.indexOf(parent) === -1) {\n labels.push(parent);\n }\n\n parent = parent.parentNode;\n }\n\n this.relatedNodes(labels);\n\n if (labels.length > 1) {\n var ATVisibleLabels = labels.filter(function (label) {\n return axe.commons.dom.isVisible(label, true);\n });\n\n if (ATVisibleLabels.length > 1) {\n return undefined;\n }\n\n var labelledby = axe.commons.dom.idrefs(node, 'aria-labelledby');\n return !labelledby.includes(ATVisibleLabels[0]) ? undefined : false;\n }\n\n return false;\n }\n }, {\n id: 'title-only',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var labelText = axe.commons.text.labelVirtual(virtualNode);\n return !labelText && !!(node.getAttribute('title') || node.getAttribute('aria-describedby'));\n }\n }, {\n id: 'landmark-is-unique',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var role = axe.commons.aria.getRole(node);\n var accessibleText = axe.commons.text.accessibleTextVirtual(virtualNode);\n accessibleText = accessibleText ? accessibleText.toLowerCase() : null;\n this.data({\n role: role,\n accessibleText: accessibleText\n });\n this.relatedNodes([node]);\n return true;\n },\n after: function after(results, options) {\n var uniqueLandmarks = [];\n return results.filter(function (currentResult) {\n var findMatch = function findMatch(someResult) {\n return currentResult.data.role === someResult.data.role && currentResult.data.accessibleText === someResult.data.accessibleText;\n };\n\n var matchedResult = uniqueLandmarks.find(findMatch);\n\n if (matchedResult) {\n matchedResult.result = false;\n matchedResult.relatedNodes.push(currentResult.relatedNodes[0]);\n return false;\n }\n\n uniqueLandmarks.push(currentResult);\n currentResult.relatedNodes = [];\n return true;\n });\n }\n }, {\n id: 'has-lang',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var isXHTML = axe.utils.isXHTML;\n var langValue = (node.getAttribute('lang') || '').trim();\n var xmlLangValue = (node.getAttribute('xml:lang') || '').trim();\n\n if (!langValue && xmlLangValue && !isXHTML(document)) {\n this.data({\n messageKey: 'noXHTML'\n });\n return false;\n }\n\n if (!(langValue || xmlLangValue)) {\n this.data({\n messageKey: 'noLang'\n });\n return false;\n }\n\n return true;\n }\n }, {\n id: 'valid-lang',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var langs, invalid;\n langs = (options ? options : axe.utils.validLangs()).map(axe.utils.getBaseLang);\n invalid = ['lang', 'xml:lang'].reduce(function (invalid, langAttr) {\n var langVal = node.getAttribute(langAttr);\n\n if (typeof langVal !== 'string') {\n return invalid;\n }\n\n var baselangVal = axe.utils.getBaseLang(langVal);\n\n if (baselangVal !== '' && langs.indexOf(baselangVal) === -1) {\n invalid.push(langAttr + '=\"' + node.getAttribute(langAttr) + '\"');\n }\n\n return invalid;\n }, []);\n\n if (invalid.length) {\n this.data(invalid);\n return true;\n }\n\n return false;\n }\n }, {\n id: 'xml-lang-mismatch',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var getBaseLang = axe.utils.getBaseLang;\n var primaryLangValue = getBaseLang(node.getAttribute('lang'));\n var primaryXmlLangValue = getBaseLang(node.getAttribute('xml:lang'));\n return primaryLangValue === primaryXmlLangValue;\n }\n }, {\n id: 'dlitem',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var parent = axe.commons.dom.getComposedParent(node);\n var parentTagName = parent.nodeName.toUpperCase();\n var parentRole = axe.commons.aria.getRole(parent, {\n noImplicit: true\n });\n\n if (parentTagName === 'DIV' && ['presentation', 'none', null].includes(parentRole)) {\n parent = axe.commons.dom.getComposedParent(parent);\n parentTagName = parent.nodeName.toUpperCase();\n parentRole = axe.commons.aria.getRole(parent, {\n noImplicit: true\n });\n }\n\n if (parentTagName !== 'DL') {\n return false;\n }\n\n if (!parentRole || parentRole === 'list') {\n return true;\n }\n\n return false;\n }\n }, {\n id: 'listitem',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var parent = axe.commons.dom.getComposedParent(node);\n\n if (!parent) {\n return undefined;\n }\n\n var parentTagName = parent.nodeName.toUpperCase();\n var parentRole = (parent.getAttribute('role') || '').toLowerCase();\n\n if (['presentation', 'none', 'list'].includes(parentRole)) {\n return true;\n }\n\n if (parentRole && axe.commons.aria.isValidRole(parentRole)) {\n this.data({\n messageKey: 'roleNotValid'\n });\n return false;\n }\n\n return ['UL', 'OL'].includes(parentTagName);\n }\n }, {\n id: 'only-dlitems',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons13 = axe.commons,\n dom = _axe$commons13.dom,\n aria = _axe$commons13.aria;\n var ALLOWED_ROLES = ['definition', 'term', 'list'];\n var base = {\n badNodes: [],\n hasNonEmptyTextNode: false\n };\n var content = virtualNode.children.reduce(function (content, child) {\n var actualNode = child.actualNode;\n\n if (actualNode.nodeName.toUpperCase() === 'DIV' && aria.getRole(actualNode) === null) {\n return content.concat(child.children);\n }\n\n return content.concat(child);\n }, []);\n var result = content.reduce(function (out, childNode) {\n var actualNode = childNode.actualNode;\n var tagName = actualNode.nodeName.toUpperCase();\n\n if (actualNode.nodeType === 1 && dom.isVisible(actualNode, true, false)) {\n var explicitRole = aria.getRole(actualNode, {\n noImplicit: true\n });\n\n if (tagName !== 'DT' && tagName !== 'DD' || explicitRole) {\n if (!ALLOWED_ROLES.includes(explicitRole)) {\n out.badNodes.push(actualNode);\n }\n }\n } else if (actualNode.nodeType === 3 && actualNode.nodeValue.trim() !== '') {\n out.hasNonEmptyTextNode = true;\n }\n\n return out;\n }, base);\n\n if (result.badNodes.length) {\n this.relatedNodes(result.badNodes);\n }\n\n return !!result.badNodes.length || result.hasNonEmptyTextNode;\n }\n }, {\n id: 'only-listitems',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons14 = axe.commons,\n dom = _axe$commons14.dom,\n aria = _axe$commons14.aria;\n var hasNonEmptyTextNode = false;\n var atLeastOneListitem = false;\n var isEmpty = true;\n var badNodes = [];\n var badRoleNodes = [];\n var badRoles = [];\n virtualNode.children.forEach(function (vNode) {\n var actualNode = vNode.actualNode;\n\n if (actualNode.nodeType === 3 && actualNode.nodeValue.trim() !== '') {\n hasNonEmptyTextNode = true;\n return;\n }\n\n if (actualNode.nodeType !== 1 || !dom.isVisible(actualNode, true, false)) {\n return;\n }\n\n isEmpty = false;\n var isLi = actualNode.nodeName.toUpperCase() === 'LI';\n var role = aria.getRole(vNode);\n var isListItemRole = role === 'listitem';\n\n if (!isLi && !isListItemRole) {\n badNodes.push(actualNode);\n }\n\n if (isLi && !isListItemRole) {\n badRoleNodes.push(actualNode);\n\n if (!badRoles.includes(role)) {\n badRoles.push(role);\n }\n }\n\n if (isListItemRole) {\n atLeastOneListitem = true;\n }\n });\n\n if (hasNonEmptyTextNode || badNodes.length) {\n this.relatedNodes(badNodes);\n return true;\n }\n\n if (isEmpty || atLeastOneListitem) {\n return false;\n }\n\n this.relatedNodes(badRoleNodes);\n this.data({\n messageKey: 'roleNotValid',\n roles: badRoles.join(', ')\n });\n return true;\n }\n }, {\n id: 'structured-dlitems',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var children = virtualNode.children;\n\n if (!children || !children.length) {\n return false;\n }\n\n var hasDt = false,\n hasDd = false,\n nodeName;\n\n for (var i = 0; i < children.length; i++) {\n nodeName = children[i].actualNode.nodeName.toUpperCase();\n\n if (nodeName === 'DT') {\n hasDt = true;\n }\n\n if (hasDt && nodeName === 'DD') {\n return false;\n }\n\n if (nodeName === 'DD') {\n hasDd = true;\n }\n }\n\n return hasDt || hasDd;\n }\n }, {\n id: 'caption',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tracks = axe.utils.querySelectorAll(virtualNode, 'track');\n var hasCaptions = tracks.some(function (_ref7) {\n var actualNode = _ref7.actualNode;\n return (actualNode.getAttribute('kind') || '').toLowerCase() === 'captions';\n });\n return hasCaptions ? false : undefined;\n }\n }, {\n id: 'description',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tracks = axe.utils.querySelectorAll(virtualNode, 'track');\n var hasDescriptions = tracks.some(function (_ref8) {\n var actualNode = _ref8.actualNode;\n return (actualNode.getAttribute('kind') || '').toLowerCase() === 'descriptions';\n });\n return hasDescriptions ? false : undefined;\n }\n }, {\n id: 'frame-tested',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var resolve = this.async();\n\n var _Object$assign = Object.assign({\n isViolation: false,\n timeout: 500\n }, options),\n isViolation = _Object$assign.isViolation,\n timeout = _Object$assign.timeout;\n\n var timer = setTimeout(function () {\n timer = setTimeout(function () {\n timer = null;\n resolve(isViolation ? false : undefined);\n }, 0);\n }, timeout);\n axe.utils.respondable(node.contentWindow, 'axe.ping', null, undefined, function () {\n if (timer !== null) {\n clearTimeout(timer);\n resolve(true);\n }\n });\n },\n options: {\n isViolation: false\n }\n }, {\n id: 'no-autoplay-audio',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!node.duration) {\n console.warn('axe.utils.preloadMedia did not load metadata');\n return undefined;\n }\n\n var _options$allowedDurat = options.allowedDuration,\n allowedDuration = _options$allowedDurat === void 0 ? 3 : _options$allowedDurat;\n var playableDuration = getPlayableDuration(node);\n\n if (playableDuration <= allowedDuration && !node.hasAttribute('loop')) {\n return true;\n }\n\n if (!node.hasAttribute('controls')) {\n return false;\n }\n\n return true;\n\n function getPlayableDuration(elm) {\n if (!elm.currentSrc) {\n return 0;\n }\n\n var playbackRange = getPlaybackRange(elm.currentSrc);\n\n if (!playbackRange) {\n return Math.abs(elm.duration - (elm.currentTime || 0));\n }\n\n if (playbackRange.length === 1) {\n return Math.abs(elm.duration - playbackRange[0]);\n }\n\n return Math.abs(playbackRange[1] - playbackRange[0]);\n }\n\n function getPlaybackRange(src) {\n var match = src.match(/#t=(.*)/);\n\n if (!match) {\n return;\n }\n\n var _match = _slicedToArray(match, 2),\n value = _match[1];\n\n var ranges = value.split(',');\n return ranges.map(function (range) {\n if (/:/.test(range)) {\n return convertHourMinSecToSeconds(range);\n }\n\n return parseFloat(range);\n });\n }\n\n function convertHourMinSecToSeconds(hhMmSs) {\n var parts = hhMmSs.split(':');\n var secs = 0;\n var mins = 1;\n\n while (parts.length > 0) {\n secs += mins * parseInt(parts.pop(), 10);\n mins *= 60;\n }\n\n return parseFloat(secs);\n }\n },\n options: {\n allowedDuration: 3\n }\n }, {\n id: 'css-orientation-lock',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _ref9 = context || {},\n _ref9$cssom = _ref9.cssom,\n cssom = _ref9$cssom === void 0 ? undefined : _ref9$cssom;\n\n var _ref10 = options || {},\n _ref10$degreeThreshol = _ref10.degreeThreshold,\n degreeThreshold = _ref10$degreeThreshol === void 0 ? 0 : _ref10$degreeThreshol;\n\n if (!cssom || !cssom.length) {\n return undefined;\n }\n\n var isLocked = false;\n var relatedElements = [];\n var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);\n\n var _loop = function _loop() {\n var key = _Object$keys[_i2];\n var _rulesGroupByDocument = rulesGroupByDocumentFragment[key],\n root = _rulesGroupByDocument.root,\n rules = _rulesGroupByDocument.rules;\n var orientationRules = rules.filter(isMediaRuleWithOrientation);\n\n if (!orientationRules.length) {\n return 'continue';\n }\n\n orientationRules.forEach(function (_ref16) {\n var cssRules = _ref16.cssRules;\n Array.from(cssRules).forEach(function (cssRule) {\n var locked = getIsOrientationLocked(cssRule);\n\n if (locked && cssRule.selectorText.toUpperCase() !== 'HTML') {\n var elms = Array.from(root.querySelectorAll(cssRule.selectorText)) || [];\n relatedElements = relatedElements.concat(elms);\n }\n\n isLocked = isLocked || locked;\n });\n });\n };\n\n for (var _i2 = 0, _Object$keys = Object.keys(rulesGroupByDocumentFragment); _i2 < _Object$keys.length; _i2++) {\n var _ret = _loop();\n\n if (_ret === 'continue') {\n continue;\n }\n }\n\n if (!isLocked) {\n return true;\n }\n\n if (relatedElements.length) {\n this.relatedNodes(relatedElements);\n }\n\n return false;\n\n function groupCssomByDocument(cssObjectModel) {\n return cssObjectModel.reduce(function (out, _ref11) {\n var sheet = _ref11.sheet,\n root = _ref11.root,\n shadowId = _ref11.shadowId;\n var key = shadowId ? shadowId : 'topDocument';\n\n if (!out[key]) {\n out[key] = {\n root: root,\n rules: []\n };\n }\n\n if (!sheet || !sheet.cssRules) {\n return out;\n }\n\n var rules = Array.from(sheet.cssRules);\n out[key].rules = out[key].rules.concat(rules);\n return out;\n }, {});\n }\n\n function isMediaRuleWithOrientation(_ref12) {\n var type = _ref12.type,\n cssText = _ref12.cssText;\n\n if (type !== 4) {\n return false;\n }\n\n return /orientation:\\s*landscape/i.test(cssText) || /orientation:\\s*portrait/i.test(cssText);\n }\n\n function getIsOrientationLocked(_ref13) {\n var selectorText = _ref13.selectorText,\n style = _ref13.style;\n\n if (!selectorText || style.length <= 0) {\n return false;\n }\n\n var transformStyle = style.transform || style.webkitTransform || style.msTransform || false;\n\n if (!transformStyle) {\n return false;\n }\n\n var matches = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\\(([^)]+)\\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);\n\n if (!matches) {\n return false;\n }\n\n var _matches = _slicedToArray(matches, 3),\n transformFn = _matches[1],\n transformFnValue = _matches[2];\n\n var degrees = getRotationInDegrees(transformFn, transformFnValue);\n\n if (!degrees) {\n return false;\n }\n\n degrees = Math.abs(degrees);\n\n if (Math.abs(degrees - 180) % 180 <= degreeThreshold) {\n return false;\n }\n\n return Math.abs(degrees - 90) % 90 <= degreeThreshold;\n }\n\n function getRotationInDegrees(transformFunction, transformFnValue) {\n switch (transformFunction) {\n case 'rotate':\n case 'rotateZ':\n return getAngleInDegrees(transformFnValue);\n\n case 'rotate3d':\n var _transformFnValue$spl = transformFnValue.split(',').map(function (value) {\n return value.trim();\n }),\n _transformFnValue$spl2 = _slicedToArray(_transformFnValue$spl, 4),\n z = _transformFnValue$spl2[2],\n angleWithUnit = _transformFnValue$spl2[3];\n\n if (parseInt(z) === 0) {\n return;\n }\n\n return getAngleInDegrees(angleWithUnit);\n\n case 'matrix':\n case 'matrix3d':\n return getAngleInDegreesFromMatrixTransform(transformFnValue);\n\n default:\n return;\n }\n }\n\n function getAngleInDegrees(angleWithUnit) {\n var _ref14 = angleWithUnit.match(/(deg|grad|rad|turn)/) || [],\n _ref15 = _slicedToArray(_ref14, 1),\n unit = _ref15[0];\n\n if (!unit) {\n return;\n }\n\n var angle = parseFloat(angleWithUnit.replace(unit, ''));\n\n switch (unit) {\n case 'rad':\n return convertRadToDeg(angle);\n\n case 'grad':\n return convertGradToDeg(angle);\n\n case 'turn':\n return convertTurnToDeg(angle);\n\n case 'deg':\n default:\n return parseInt(angle);\n }\n }\n\n function getAngleInDegreesFromMatrixTransform(transformFnValue) {\n var values = transformFnValue.split(',');\n\n if (values.length <= 6) {\n var _values = _slicedToArray(values, 2),\n a = _values[0],\n _b = _values[1];\n\n var radians = Math.atan2(parseFloat(_b), parseFloat(a));\n return convertRadToDeg(radians);\n }\n\n var sinB = parseFloat(values[8]);\n var b = Math.asin(sinB);\n var cosB = Math.cos(b);\n var rotateZRadians = Math.acos(parseFloat(values[0]) / cosB);\n return convertRadToDeg(rotateZRadians);\n }\n\n function convertRadToDeg(radians) {\n return Math.round(radians * (180 / Math.PI));\n }\n\n function convertGradToDeg(grad) {\n grad = grad % 400;\n\n if (grad < 0) {\n grad += 400;\n }\n\n return Math.round(grad / 400 * 360);\n }\n\n function convertTurnToDeg(turn) {\n return Math.round(360 / (1 / turn));\n }\n },\n options: {\n degreeThreshold: 2\n }\n }, {\n id: 'meta-viewport-large',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _ref17 = options || {},\n _ref17$scaleMinimum = _ref17.scaleMinimum,\n scaleMinimum = _ref17$scaleMinimum === void 0 ? 2 : _ref17$scaleMinimum,\n _ref17$lowerBound = _ref17.lowerBound,\n lowerBound = _ref17$lowerBound === void 0 ? false : _ref17$lowerBound;\n\n var content = node.getAttribute('content') || '';\n\n if (!content) {\n return true;\n }\n\n var result = content.split(/[;,]/).reduce(function (out, item) {\n var contentValue = item.trim();\n\n if (!contentValue) {\n return out;\n }\n\n var _contentValue$split = contentValue.split('='),\n _contentValue$split2 = _slicedToArray(_contentValue$split, 2),\n key = _contentValue$split2[0],\n value = _contentValue$split2[1];\n\n if (!key || !value) {\n return out;\n }\n\n var curatedKey = key.toLowerCase().trim();\n var curatedValue = value.toLowerCase().trim();\n\n if (curatedKey === 'maximum-scale' && curatedValue === 'yes') {\n curatedValue = 1;\n }\n\n if (curatedKey === 'maximum-scale' && parseFloat(curatedValue) < 0) {\n return out;\n }\n\n out[curatedKey] = curatedValue;\n return out;\n }, {});\n\n if (lowerBound && result['maximum-scale'] && parseFloat(result['maximum-scale']) < lowerBound) {\n return true;\n }\n\n if (!lowerBound && result['user-scalable'] === 'no') {\n this.data('user-scalable=no');\n return false;\n }\n\n if (result['maximum-scale'] && parseFloat(result['maximum-scale']) < scaleMinimum) {\n this.data('maximum-scale');\n return false;\n }\n\n return true;\n },\n options: {\n scaleMinimum: 5,\n lowerBound: 2\n }\n }, {\n id: 'meta-viewport',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _ref18 = options || {},\n _ref18$scaleMinimum = _ref18.scaleMinimum,\n scaleMinimum = _ref18$scaleMinimum === void 0 ? 2 : _ref18$scaleMinimum,\n _ref18$lowerBound = _ref18.lowerBound,\n lowerBound = _ref18$lowerBound === void 0 ? false : _ref18$lowerBound;\n\n var content = node.getAttribute('content') || '';\n\n if (!content) {\n return true;\n }\n\n var result = content.split(/[;,]/).reduce(function (out, item) {\n var contentValue = item.trim();\n\n if (!contentValue) {\n return out;\n }\n\n var _contentValue$split3 = contentValue.split('='),\n _contentValue$split4 = _slicedToArray(_contentValue$split3, 2),\n key = _contentValue$split4[0],\n value = _contentValue$split4[1];\n\n if (!key || !value) {\n return out;\n }\n\n var curatedKey = key.toLowerCase().trim();\n var curatedValue = value.toLowerCase().trim();\n\n if (curatedKey === 'maximum-scale' && curatedValue === 'yes') {\n curatedValue = 1;\n }\n\n if (curatedKey === 'maximum-scale' && parseFloat(curatedValue) < 0) {\n return out;\n }\n\n out[curatedKey] = curatedValue;\n return out;\n }, {});\n\n if (lowerBound && result['maximum-scale'] && parseFloat(result['maximum-scale']) < lowerBound) {\n return true;\n }\n\n if (!lowerBound && result['user-scalable'] === 'no') {\n this.data('user-scalable=no');\n return false;\n }\n\n if (result['maximum-scale'] && parseFloat(result['maximum-scale']) < scaleMinimum) {\n this.data('maximum-scale');\n return false;\n }\n\n return true;\n },\n options: {\n scaleMinimum: 2\n }\n }, {\n id: 'header-present',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return !!axe.utils.querySelectorAll(virtualNode, 'h1, h2, h3, h4, h5, h6, [role=\"heading\"]')[0];\n }\n }, {\n id: 'heading-order',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var ariaHeadingLevel = node.getAttribute('aria-level');\n\n if (ariaHeadingLevel !== null) {\n this.data(parseInt(ariaHeadingLevel, 10));\n return true;\n }\n\n var headingLevel = node.nodeName.toUpperCase().match(/H(\\d)/);\n\n if (headingLevel) {\n this.data(parseInt(headingLevel[1], 10));\n return true;\n }\n\n return true;\n },\n after: function after(results, options) {\n if (results.length < 2) {\n return results;\n }\n\n var prevLevel = results[0].data;\n\n for (var i = 1; i < results.length; i++) {\n if (results[i].result && results[i].data > prevLevel + 1) {\n results[i].result = false;\n }\n\n prevLevel = results[i].data;\n }\n\n return results;\n }\n }, {\n id: 'identical-links-same-purpose',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons15 = axe.commons,\n dom = _axe$commons15.dom,\n text = _axe$commons15.text;\n var accText = text.accessibleTextVirtual(virtualNode);\n var name = text.sanitize(text.removeUnicode(accText, {\n emoji: true,\n nonBmp: true,\n punctuations: true\n })).toLowerCase();\n\n if (!name) {\n return undefined;\n }\n\n var afterData = {\n name: name,\n urlProps: dom.urlPropsFromAttribute(node, 'href')\n };\n this.data(afterData);\n this.relatedNodes([node]);\n return true;\n },\n after: function after(results, options) {\n if (results.length < 2) {\n return results;\n }\n\n var incompleteResults = results.filter(function (_ref19) {\n var result = _ref19.result;\n return result !== undefined;\n });\n var uniqueResults = [];\n var nameMap = {};\n\n var _loop2 = function _loop2(index) {\n var _currentResult$relate;\n\n var currentResult = incompleteResults[index];\n var _currentResult$data = currentResult.data,\n name = _currentResult$data.name,\n urlProps = _currentResult$data.urlProps;\n\n if (nameMap[name]) {\n return 'continue';\n }\n\n var sameNameResults = incompleteResults.filter(function (_ref20, resultNum) {\n var data = _ref20.data;\n return data.name === name && resultNum !== index;\n });\n var isSameUrl = sameNameResults.every(function (_ref21) {\n var data = _ref21.data;\n return isIdenticalObject(data.urlProps, urlProps);\n });\n\n if (sameNameResults.length && !isSameUrl) {\n currentResult.result = undefined;\n }\n\n currentResult.relatedNodes = [];\n\n (_currentResult$relate = currentResult.relatedNodes).push.apply(_currentResult$relate, _toConsumableArray(sameNameResults.map(function (node) {\n return node.relatedNodes[0];\n })));\n\n nameMap[name] = sameNameResults;\n uniqueResults.push(currentResult);\n };\n\n for (var index = 0; index < incompleteResults.length; index++) {\n var _ret2 = _loop2(index);\n\n if (_ret2 === 'continue') {\n continue;\n }\n }\n\n return uniqueResults;\n\n function isIdenticalObject(a, b) {\n if (!a || !b) {\n return false;\n }\n\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n\n if (aProps.length !== bProps.length) {\n return false;\n }\n\n var result = aProps.every(function (propName) {\n var aValue = a[propName];\n var bValue = b[propName];\n\n if (_typeof(aValue) !== _typeof(bValue)) {\n return false;\n }\n\n if (typeof aValue === 'object' || typeof bValue === 'object') {\n return isIdenticalObject(aValue, bValue);\n }\n\n return aValue === bValue;\n });\n return result;\n }\n }\n }, {\n id: 'internal-link-present',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var links = axe.utils.querySelectorAll(virtualNode, 'a[href]');\n return links.some(function (vLink) {\n return /^#[^/!]/.test(vLink.actualNode.getAttribute('href'));\n });\n }\n }, {\n id: 'landmark',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return axe.utils.querySelectorAll(virtualNode, 'main, [role=\"main\"]').length > 0;\n }\n }, {\n id: 'meta-refresh',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var content = node.getAttribute('content') || '',\n parsedParams = content.split(/[;,]/);\n return content === '' || parsedParams[0] === '0';\n }\n }, {\n id: 'p-as-heading',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var siblings = Array.from(node.parentNode.children);\n var currentIndex = siblings.indexOf(node);\n options = options || {};\n var margins = options.margins || [];\n var nextSibling = siblings.slice(currentIndex + 1).find(function (elm) {\n return elm.nodeName.toUpperCase() === 'P';\n });\n var prevSibling = siblings.slice(0, currentIndex).reverse().find(function (elm) {\n return elm.nodeName.toUpperCase() === 'P';\n });\n\n function getTextContainer(elm) {\n var nextNode = elm;\n var outerText = elm.textContent.trim();\n var innerText = outerText;\n\n while (innerText === outerText && nextNode !== undefined) {\n var i = -1;\n elm = nextNode;\n\n if (elm.children.length === 0) {\n return elm;\n }\n\n do {\n i++;\n innerText = elm.children[i].textContent.trim();\n } while (innerText === '' && i + 1 < elm.children.length);\n\n nextNode = elm.children[i];\n }\n\n return elm;\n }\n\n function normalizeFontWeight(weight) {\n switch (weight) {\n case 'lighter':\n return 100;\n\n case 'normal':\n return 400;\n\n case 'bold':\n return 700;\n\n case 'bolder':\n return 900;\n }\n\n weight = parseInt(weight);\n return !isNaN(weight) ? weight : 400;\n }\n\n function getStyleValues(node) {\n var style = window.getComputedStyle(getTextContainer(node));\n return {\n fontWeight: normalizeFontWeight(style.getPropertyValue('font-weight')),\n fontSize: parseInt(style.getPropertyValue('font-size')),\n isItalic: style.getPropertyValue('font-style') === 'italic'\n };\n }\n\n function isHeaderStyle(styleA, styleB, margins) {\n return margins.reduce(function (out, margin) {\n return out || (!margin.size || styleA.fontSize / margin.size > styleB.fontSize) && (!margin.weight || styleA.fontWeight - margin.weight > styleB.fontWeight) && (!margin.italic || styleA.isItalic && !styleB.isItalic);\n }, false);\n }\n\n var currStyle = getStyleValues(node);\n var nextStyle = nextSibling ? getStyleValues(nextSibling) : null;\n var prevStyle = prevSibling ? getStyleValues(prevSibling) : null;\n\n if (!nextStyle || !isHeaderStyle(currStyle, nextStyle, margins)) {\n return true;\n }\n\n var blockquote = axe.commons.dom.findUpVirtual(virtualNode, 'blockquote');\n\n if (blockquote && blockquote.nodeName.toUpperCase() === 'BLOCKQUOTE') {\n return undefined;\n }\n\n if (prevStyle && !isHeaderStyle(currStyle, prevStyle, margins)) {\n return undefined;\n }\n\n return false;\n },\n options: {\n margins: [{\n weight: 150,\n italic: true\n }, {\n weight: 150,\n size: 1.15\n }, {\n italic: true,\n size: 1.15\n }, {\n size: 1.4\n }]\n }\n }, {\n id: 'region',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons16 = axe.commons,\n dom = _axe$commons16.dom,\n aria = _axe$commons16.aria;\n var landmarkRoles = aria.getRolesByType('landmark');\n var implicitAriaLiveRoles = ['alert', 'log', 'status'];\n\n var regionlessNodes = axe._cache.get('regionlessNodes');\n\n if (regionlessNodes) {\n return !regionlessNodes.includes(virtualNode);\n }\n\n var implicitLandmarks = landmarkRoles.reduce(function (arr, role) {\n return arr.concat(aria.implicitNodes(role));\n }, []).filter(function (r) {\n return r !== null;\n });\n\n function isRegion(virtualNode) {\n var node = virtualNode.actualNode;\n var explicitRole = axe.commons.aria.getRole(node, {\n noImplicit: true\n });\n var ariaLive = (node.getAttribute('aria-live') || '').toLowerCase().trim();\n\n if (['assertive', 'polite'].includes(ariaLive) || implicitAriaLiveRoles.includes(explicitRole)) {\n return true;\n }\n\n if (explicitRole) {\n return explicitRole === 'dialog' || landmarkRoles.includes(explicitRole);\n }\n\n return implicitLandmarks.some(function (implicitSelector) {\n var matches = axe.utils.matchesSelector(node, implicitSelector);\n\n if (node.nodeName.toUpperCase() === 'FORM') {\n var titleAttr = node.getAttribute('title');\n var title = titleAttr && titleAttr.trim() !== '' ? axe.commons.text.sanitize(titleAttr) : null;\n return matches && (!!aria.labelVirtual(virtualNode) || !!title);\n }\n\n return matches;\n });\n }\n\n function findRegionlessElms(virtualNode) {\n var node = virtualNode.actualNode;\n\n if (isRegion(virtualNode) || dom.isSkipLink(virtualNode.actualNode) && dom.getElementByReference(virtualNode.actualNode, 'href') || !dom.isVisible(node, true)) {\n var vNode = virtualNode;\n\n while (vNode) {\n vNode._hasRegionDescendant = true;\n vNode = vNode.parent;\n }\n\n return [];\n } else if (node !== document.body && dom.hasContent(node, true)) {\n return [virtualNode];\n } else {\n return virtualNode.children.filter(function (_ref22) {\n var actualNode = _ref22.actualNode;\n return actualNode.nodeType === 1;\n }).map(findRegionlessElms).reduce(function (a, b) {\n return a.concat(b);\n }, []);\n }\n }\n\n regionlessNodes = findRegionlessElms(axe._tree[0]).map(function (vNode) {\n while (vNode.parent && !vNode.parent._hasRegionDescendant && vNode.parent.actualNode !== document.body) {\n vNode = vNode.parent;\n }\n\n return vNode;\n }).filter(function (vNode, index, array) {\n return array.indexOf(vNode) === index;\n });\n\n axe._cache.set('regionlessNodes', regionlessNodes);\n\n return !regionlessNodes.includes(virtualNode);\n }\n }, {\n id: 'skip-link',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var target = axe.commons.dom.getElementByReference(node, 'href');\n\n if (target) {\n return axe.commons.dom.isVisible(target, true) || undefined;\n }\n\n return false;\n }\n }, {\n id: 'unique-frame-title',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var title = axe.commons.text.sanitize(node.title).trim().toLowerCase();\n this.data(title);\n return true;\n },\n after: function after(results, options) {\n var titles = {};\n results.forEach(function (r) {\n titles[r.data] = titles[r.data] !== undefined ? ++titles[r.data] : 0;\n });\n results.forEach(function (r) {\n r.result = !!titles[r.data];\n });\n return results;\n }\n }, {\n id: 'duplicate-id-active',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var id = node.getAttribute('id').trim();\n\n if (!id) {\n return true;\n }\n\n var root = axe.commons.dom.getRootNode(node);\n var matchingNodes = Array.from(root.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(id), '\"]'))).filter(function (foundNode) {\n return foundNode !== node;\n });\n\n if (matchingNodes.length) {\n this.relatedNodes(matchingNodes);\n }\n\n this.data(id);\n return matchingNodes.length === 0;\n },\n after: function after(results, options) {\n var uniqueIds = [];\n return results.filter(function (r) {\n if (uniqueIds.indexOf(r.data) === -1) {\n uniqueIds.push(r.data);\n return true;\n }\n\n return false;\n });\n }\n }, {\n id: 'duplicate-id-aria',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var id = node.getAttribute('id').trim();\n\n if (!id) {\n return true;\n }\n\n var root = axe.commons.dom.getRootNode(node);\n var matchingNodes = Array.from(root.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(id), '\"]'))).filter(function (foundNode) {\n return foundNode !== node;\n });\n\n if (matchingNodes.length) {\n this.relatedNodes(matchingNodes);\n }\n\n this.data(id);\n return matchingNodes.length === 0;\n },\n after: function after(results, options) {\n var uniqueIds = [];\n return results.filter(function (r) {\n if (uniqueIds.indexOf(r.data) === -1) {\n uniqueIds.push(r.data);\n return true;\n }\n\n return false;\n });\n }\n }, {\n id: 'duplicate-id',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var id = node.getAttribute('id').trim();\n\n if (!id) {\n return true;\n }\n\n var root = axe.commons.dom.getRootNode(node);\n var matchingNodes = Array.from(root.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(id), '\"]'))).filter(function (foundNode) {\n return foundNode !== node;\n });\n\n if (matchingNodes.length) {\n this.relatedNodes(matchingNodes);\n }\n\n this.data(id);\n return matchingNodes.length === 0;\n },\n after: function after(results, options) {\n var uniqueIds = [];\n return results.filter(function (r) {\n if (uniqueIds.indexOf(r.data) === -1) {\n uniqueIds.push(r.data);\n return true;\n }\n\n return false;\n });\n }\n }, {\n id: 'aria-label',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons17 = axe.commons,\n text = _axe$commons17.text,\n aria = _axe$commons17.aria;\n return !!text.sanitize(aria.arialabelText(virtualNode));\n }\n }, {\n id: 'aria-labelledby',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var _axe$commons18 = axe.commons,\n text = _axe$commons18.text,\n aria = _axe$commons18.aria;\n return !!text.sanitize(aria.arialabelledbyText(node));\n }\n }, {\n id: 'avoid-inline-spacing',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var inlineSpacingCssProperties = ['line-height', 'letter-spacing', 'word-spacing'];\n var overriddenProperties = inlineSpacingCssProperties.filter(function (property) {\n if (node.style.getPropertyPriority(property) === 'important') {\n return property;\n }\n });\n\n if (overriddenProperties.length > 0) {\n this.data(overriddenProperties);\n return false;\n }\n\n return true;\n }\n }, {\n id: 'button-has-visible-text',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var nodeName = node.nodeName.toUpperCase();\n var role = node.getAttribute('role');\n var label;\n\n if (nodeName === 'BUTTON' || role === 'button' && nodeName !== 'INPUT') {\n label = axe.commons.text.accessibleTextVirtual(virtualNode);\n this.data(label);\n return !!label;\n } else {\n return false;\n }\n }\n }, {\n id: 'doc-has-title',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var title = document.title;\n return !!(title ? axe.commons.text.sanitize(title).trim() : '');\n }\n }, {\n id: 'exists',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return undefined;\n }\n }, {\n id: 'has-alt',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var nodeName = virtualNode.props.nodeName;\n\n if (!['img', 'input', 'area'].includes(nodeName)) {\n return false;\n }\n\n return virtualNode.hasAttr('alt');\n }\n }, {\n id: 'has-visible-text',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return axe.commons.text.accessibleTextVirtual(virtualNode).length > 0;\n }\n }, {\n id: 'is-on-screen',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return axe.commons.dom.isVisible(node, false) && !axe.commons.dom.isOffscreen(node);\n }\n }, {\n id: 'non-empty-alt',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var label = virtualNode.attr('alt');\n return !!(label ? axe.commons.text.sanitize(label).trim() : '');\n }\n }, {\n id: 'non-empty-if-present',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var nodeName = node.nodeName.toUpperCase();\n var type = (node.getAttribute('type') || '').toLowerCase();\n var label = node.getAttribute('value');\n\n if (label) {\n this.data({\n messageKey: 'has-label'\n });\n }\n\n if (nodeName === 'INPUT' && ['submit', 'reset'].includes(type)) {\n return label === null;\n }\n\n return false;\n }\n }, {\n id: 'non-empty-title',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var text = axe.commons.text;\n return !!text.sanitize(text.titleText(node));\n }\n }, {\n id: 'non-empty-value',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var label = node.getAttribute('value');\n return !!(label ? axe.commons.text.sanitize(label).trim() : '');\n }\n }, {\n id: 'role-none',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return node.getAttribute('role') === 'none';\n }\n }, {\n id: 'role-presentation',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return node.getAttribute('role') === 'presentation';\n }\n }, {\n id: 'svg-non-empty-title',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var titleNode = virtualNode.children.find(function (_ref23) {\n var props = _ref23.props;\n return props.nodeName === 'title';\n });\n return !!titleNode && titleNode.actualNode.textContent.trim() !== '';\n }\n }, {\n id: 'caption-faked',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var table = axe.commons.table.toGrid(node);\n var firstRow = table[0];\n\n if (table.length <= 1 || firstRow.length <= 1 || node.rows.length <= 1) {\n return true;\n }\n\n return firstRow.reduce(function (out, curr, i) {\n return out || curr !== firstRow[i + 1] && firstRow[i + 1] !== undefined;\n }, false);\n }\n }, {\n id: 'has-caption',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return !!node.caption;\n },\n deprecated: true\n }, {\n id: 'has-summary',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return !!node.summary;\n },\n deprecated: true\n }, {\n id: 'has-th',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var row,\n cell,\n badCells = [];\n\n for (var rowIndex = 0, rowLength = node.rows.length; rowIndex < rowLength; rowIndex++) {\n row = node.rows[rowIndex];\n\n for (var cellIndex = 0, cellLength = row.cells.length; cellIndex < cellLength; cellIndex++) {\n cell = row.cells[cellIndex];\n\n if (cell.nodeName.toUpperCase() === 'TH' || ['rowheader', 'columnheader'].indexOf(cell.getAttribute('role')) !== -1) {\n badCells.push(cell);\n }\n }\n }\n\n if (badCells.length) {\n this.relatedNodes(badCells);\n return true;\n }\n\n return false;\n },\n deprecated: true\n }, {\n id: 'html5-scope',\n evaluate: function evaluate(node, options, virtualNode, context) {\n if (!axe.commons.dom.isHTML5(document)) {\n return true;\n }\n\n return node.nodeName.toUpperCase() === 'TH';\n }\n }, {\n id: 'same-caption-summary',\n evaluate: function evaluate(node, options, virtualNode, context) {\n return !!(node.summary && node.caption) && node.summary.toLowerCase() === axe.commons.text.accessibleText(node.caption).toLowerCase();\n }\n }, {\n id: 'scope-value',\n evaluate: function evaluate(node, options, virtualNode, context) {\n options = options || {};\n var value = node.getAttribute('scope').toLowerCase();\n var validVals = ['row', 'col', 'rowgroup', 'colgroup'] || options.values;\n return validVals.indexOf(value) !== -1;\n }\n }, {\n id: 'td-has-header',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tableUtils = axe.commons.table;\n var badCells = [];\n var cells = tableUtils.getAllCells(node);\n var tableGrid = tableUtils.toGrid(node);\n cells.forEach(function (cell) {\n if (axe.commons.dom.hasContent(cell) && tableUtils.isDataCell(cell) && !axe.commons.aria.label(cell)) {\n var hasHeaders = tableUtils.getHeaders(cell, tableGrid).some(function (header) {\n return header !== null && !!axe.commons.dom.hasContent(header);\n });\n\n if (!hasHeaders) {\n badCells.push(cell);\n }\n }\n });\n\n if (badCells.length) {\n this.relatedNodes(badCells);\n return false;\n }\n\n return true;\n }\n }, {\n id: 'td-headers-attr',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var cells = [];\n var reviewCells = [];\n var badCells = [];\n\n for (var rowIndex = 0; rowIndex < node.rows.length; rowIndex++) {\n var row = node.rows[rowIndex];\n\n for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {\n cells.push(row.cells[cellIndex]);\n }\n }\n\n var ids = cells.reduce(function (ids, cell) {\n if (cell.getAttribute('id')) {\n ids.push(cell.getAttribute('id'));\n }\n\n return ids;\n }, []);\n cells.forEach(function (cell) {\n var isSelf = false;\n var notOfTable = false;\n\n if (!cell.hasAttribute('headers')) {\n return;\n }\n\n var headersAttr = cell.getAttribute('headers').trim();\n\n if (!headersAttr) {\n return reviewCells.push(cell);\n }\n\n var headers = axe.utils.tokenList(headersAttr);\n\n if (headers.length !== 0) {\n if (cell.getAttribute('id')) {\n isSelf = headers.indexOf(cell.getAttribute('id').trim()) !== -1;\n }\n\n notOfTable = headers.some(function (header) {\n return !ids.includes(header);\n });\n\n if (isSelf || notOfTable) {\n badCells.push(cell);\n }\n }\n });\n\n if (badCells.length > 0) {\n this.relatedNodes(badCells);\n return false;\n }\n\n if (reviewCells.length) {\n this.relatedNodes(reviewCells);\n return undefined;\n }\n\n return true;\n }\n }, {\n id: 'th-has-data-cells',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var tableUtils = axe.commons.table;\n var cells = tableUtils.getAllCells(node);\n var checkResult = this;\n var reffedHeaders = [];\n cells.forEach(function (cell) {\n var headers = cell.getAttribute('headers');\n\n if (headers) {\n reffedHeaders = reffedHeaders.concat(headers.split(/\\s+/));\n }\n\n var ariaLabel = cell.getAttribute('aria-labelledby');\n\n if (ariaLabel) {\n reffedHeaders = reffedHeaders.concat(ariaLabel.split(/\\s+/));\n }\n });\n var headers = cells.filter(function (cell) {\n if (axe.commons.text.sanitize(cell.textContent) === '') {\n return false;\n }\n\n return cell.nodeName.toUpperCase() === 'TH' || ['rowheader', 'columnheader'].indexOf(cell.getAttribute('role')) !== -1;\n });\n var tableGrid = tableUtils.toGrid(node);\n var out = true;\n headers.forEach(function (header) {\n if (header.getAttribute('id') && reffedHeaders.includes(header.getAttribute('id'))) {\n return;\n }\n\n var pos = tableUtils.getCellPosition(header, tableGrid);\n var hasCell = false;\n\n if (tableUtils.isColumnHeader(header)) {\n hasCell = tableUtils.traverse('down', pos, tableGrid).find(function (cell) {\n return !tableUtils.isColumnHeader(cell) && tableUtils.getHeaders(cell, tableGrid).includes(header);\n });\n }\n\n if (!hasCell && tableUtils.isRowHeader(header)) {\n hasCell = tableUtils.traverse('right', pos, tableGrid).find(function (cell) {\n return !tableUtils.isRowHeader(cell) && tableUtils.getHeaders(cell, tableGrid).includes(header);\n });\n }\n\n if (!hasCell) {\n checkResult.relatedNodes(header);\n }\n\n out = out && hasCell;\n });\n return out ? true : undefined;\n }\n }, {\n id: 'hidden-content',\n evaluate: function evaluate(node, options, virtualNode, context) {\n var whitelist = ['SCRIPT', 'HEAD', 'TITLE', 'NOSCRIPT', 'STYLE', 'TEMPLATE'];\n\n if (!whitelist.includes(node.nodeName.toUpperCase()) && axe.commons.dom.hasContentVirtual(virtualNode)) {\n var styles = window.getComputedStyle(node);\n\n if (styles.getPropertyValue('display') === 'none') {\n return undefined;\n } else if (styles.getPropertyValue('visibility') === 'hidden') {\n var parent = axe.commons.dom.getComposedParent(node);\n var parentStyle = parent && window.getComputedStyle(parent);\n\n if (!parentStyle || parentStyle.getPropertyValue('visibility') !== 'hidden') {\n return undefined;\n }\n }\n }\n\n return true;\n }\n }],\n commons: function () {\n var commons = {};\n var aria = commons.aria = {};\n var lookupTable = aria.lookupTable = {};\n\n var isNull = function isNull(value) {\n return value === null;\n };\n\n var isNotNull = function isNotNull(value) {\n return value !== null;\n };\n\n lookupTable.attributes = {\n 'aria-activedescendant': {\n type: 'idref',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-atomic': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-autocomplete': {\n type: 'nmtoken',\n values: ['inline', 'list', 'both', 'none'],\n unsupported: false\n },\n 'aria-busy': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-checked': {\n type: 'nmtoken',\n values: ['true', 'false', 'mixed', 'undefined'],\n unsupported: false\n },\n 'aria-colcount': {\n type: 'int',\n unsupported: false\n },\n 'aria-colindex': {\n type: 'int',\n unsupported: false\n },\n 'aria-colspan': {\n type: 'int',\n unsupported: false\n },\n 'aria-controls': {\n type: 'idrefs',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-current': {\n type: 'nmtoken',\n allowEmpty: true,\n values: ['page', 'step', 'location', 'date', 'time', 'true', 'false'],\n unsupported: false\n },\n 'aria-describedby': {\n type: 'idrefs',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-describedat': {\n unsupported: true,\n unstandardized: true\n },\n 'aria-details': {\n type: 'idref',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-disabled': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-dropeffect': {\n type: 'nmtokens',\n values: ['copy', 'move', 'reference', 'execute', 'popup', 'none'],\n unsupported: false\n },\n 'aria-errormessage': {\n type: 'idref',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-expanded': {\n type: 'nmtoken',\n values: ['true', 'false', 'undefined'],\n unsupported: false\n },\n 'aria-flowto': {\n type: 'idrefs',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-grabbed': {\n type: 'nmtoken',\n values: ['true', 'false', 'undefined'],\n unsupported: false\n },\n 'aria-haspopup': {\n type: 'nmtoken',\n allowEmpty: true,\n values: ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'],\n unsupported: false\n },\n 'aria-hidden': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-invalid': {\n type: 'nmtoken',\n allowEmpty: true,\n values: ['true', 'false', 'spelling', 'grammar'],\n unsupported: false\n },\n 'aria-keyshortcuts': {\n type: 'string',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-label': {\n type: 'string',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-labelledby': {\n type: 'idrefs',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-level': {\n type: 'int',\n unsupported: false\n },\n 'aria-live': {\n type: 'nmtoken',\n values: ['off', 'polite', 'assertive'],\n unsupported: false\n },\n 'aria-modal': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-multiline': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-multiselectable': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-orientation': {\n type: 'nmtoken',\n values: ['horizontal', 'vertical'],\n unsupported: false\n },\n 'aria-owns': {\n type: 'idrefs',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-placeholder': {\n type: 'string',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-posinset': {\n type: 'int',\n unsupported: false\n },\n 'aria-pressed': {\n type: 'nmtoken',\n values: ['true', 'false', 'mixed', 'undefined'],\n unsupported: false\n },\n 'aria-readonly': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-relevant': {\n type: 'nmtokens',\n values: ['additions', 'removals', 'text', 'all'],\n unsupported: false\n },\n 'aria-required': {\n type: 'boolean',\n values: ['true', 'false'],\n unsupported: false\n },\n 'aria-roledescription': {\n type: 'string',\n allowEmpty: true,\n unsupported: false\n },\n 'aria-rowcount': {\n type: 'int',\n unsupported: false\n },\n 'aria-rowindex': {\n type: 'int',\n unsupported: false\n },\n 'aria-rowspan': {\n type: 'int',\n unsupported: false\n },\n 'aria-selected': {\n type: 'nmtoken',\n values: ['true', 'false', 'undefined'],\n unsupported: false\n },\n 'aria-setsize': {\n type: 'int',\n unsupported: false\n },\n 'aria-sort': {\n type: 'nmtoken',\n values: ['ascending', 'descending', 'other', 'none'],\n unsupported: false\n },\n 'aria-valuemax': {\n type: 'decimal',\n unsupported: false\n },\n 'aria-valuemin': {\n type: 'decimal',\n unsupported: false\n },\n 'aria-valuenow': {\n type: 'decimal',\n unsupported: false\n },\n 'aria-valuetext': {\n type: 'string',\n unsupported: false\n }\n };\n lookupTable.globalAttributes = ['aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription'];\n lookupTable.role = {\n alert: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n alertdialog: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-modal', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['dialog', 'section']\n },\n application: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['article', 'audio', 'embed', 'iframe', 'object', 'section', 'svg', 'video']\n },\n article: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['article'],\n unsupported: false\n },\n banner: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['header'],\n unsupported: false,\n allowedElements: ['section']\n },\n button: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-pressed', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['button', 'input[type=\"button\"]', 'input[type=\"image\"]', 'input[type=\"reset\"]', 'input[type=\"submit\"]', 'summary'],\n unsupported: false,\n allowedElements: [{\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n cell: {\n type: 'structure',\n attributes: {\n allowed: ['aria-colindex', 'aria-colspan', 'aria-rowindex', 'aria-rowspan', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['row'],\n implicit: ['td', 'th'],\n unsupported: false\n },\n checkbox: {\n type: 'widget',\n attributes: {\n allowed: ['aria-checked', 'aria-required', 'aria-readonly', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['input[type=\"checkbox\"]'],\n unsupported: false,\n allowedElements: ['button']\n },\n columnheader: {\n type: 'structure',\n attributes: {\n allowed: ['aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-required', 'aria-readonly', 'aria-selected', 'aria-sort', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['row'],\n implicit: ['th'],\n unsupported: false\n },\n combobox: {\n type: 'composite',\n attributes: {\n allowed: ['aria-autocomplete', 'aria-required', 'aria-activedescendant', 'aria-orientation', 'aria-errormessage'],\n required: ['aria-expanded']\n },\n owned: {\n all: ['listbox', 'tree', 'grid', 'dialog', 'textbox']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: 'input',\n properties: {\n type: ['text', 'search', 'tel', 'url', 'email']\n }\n }]\n },\n command: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n complementary: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['aside'],\n unsupported: false,\n allowedElements: ['section']\n },\n composite: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n contentinfo: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['footer'],\n unsupported: false,\n allowedElements: ['section']\n },\n definition: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['dd', 'dfn'],\n unsupported: false\n },\n dialog: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-modal', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['dialog'],\n unsupported: false,\n allowedElements: ['section']\n },\n directory: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n document: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['body'],\n unsupported: false,\n allowedElements: ['article', 'embed', 'iframe', 'object', 'section', 'svg']\n },\n 'doc-abstract': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-acknowledgments': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-afterword': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-appendix': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-backlink': {\n type: 'link',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n 'doc-biblioentry': {\n type: 'listitem',\n attributes: {\n allowed: ['aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: ['doc-bibliography'],\n unsupported: false,\n allowedElements: ['li']\n },\n 'doc-bibliography': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: {\n one: ['doc-biblioentry']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-biblioref': {\n type: 'link',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n 'doc-chapter': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-colophon': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-conclusion': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-cover': {\n type: 'img',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false\n },\n 'doc-credit': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-credits': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-dedication': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-endnote': {\n type: 'listitem',\n attributes: {\n allowed: ['aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: ['doc-endnotes'],\n unsupported: false,\n allowedElements: ['li']\n },\n 'doc-endnotes': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: {\n one: ['doc-endnote']\n },\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-epigraph': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false\n },\n 'doc-epilogue': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-errata': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-example': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['aside', 'section']\n },\n 'doc-footnote': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['aside', 'footer', 'header']\n },\n 'doc-foreword': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-glossary': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: ['term', 'definition'],\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['dl']\n },\n 'doc-glossref': {\n type: 'link',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n 'doc-index': {\n type: 'navigation',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['nav', 'section']\n },\n 'doc-introduction': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-noteref': {\n type: 'link',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n 'doc-notice': {\n type: 'note',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-pagebreak': {\n type: 'separator',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['hr']\n },\n 'doc-pagelist': {\n type: 'navigation',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['nav', 'section']\n },\n 'doc-part': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-preface': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-prologue': {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-pullquote': {\n type: 'none',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['aside', 'section']\n },\n 'doc-qna': {\n type: 'section',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n 'doc-subtitle': {\n type: 'sectionhead',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: {\n nodeName: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']\n }\n },\n 'doc-tip': {\n type: 'note',\n attributes: {\n allowed: ['aria-expanded']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['aside']\n },\n 'doc-toc': {\n type: 'navigation',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n namefrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['nav', 'section']\n },\n feed: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: {\n one: ['article']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['article', 'aside', 'section']\n },\n figure: {\n type: 'structure',\n unsupported: false\n },\n form: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['form'],\n unsupported: false\n },\n grid: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-colcount', 'aria-level', 'aria-multiselectable', 'aria-readonly', 'aria-rowcount', 'aria-errormessage']\n },\n owned: {\n one: ['rowgroup', 'row']\n },\n nameFrom: ['author'],\n context: null,\n implicit: ['table'],\n unsupported: false\n },\n gridcell: {\n type: 'widget',\n attributes: {\n allowed: ['aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-readonly', 'aria-required', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['row'],\n implicit: ['td', 'th'],\n unsupported: false\n },\n group: {\n type: 'structure',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['details', 'optgroup'],\n unsupported: false,\n allowedElements: ['dl', 'figcaption', 'fieldset', 'figure', 'footer', 'header', 'ol', 'ul']\n },\n heading: {\n type: 'structure',\n attributes: {\n required: ['aria-level'],\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n unsupported: false\n },\n img: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['img'],\n unsupported: false,\n allowedElements: ['embed', 'iframe', 'object', 'svg']\n },\n input: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n landmark: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n link: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['a[href]'],\n unsupported: false,\n allowedElements: ['button', {\n nodeName: 'input',\n properties: {\n type: ['image', 'button']\n }\n }]\n },\n list: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: {\n all: ['listitem']\n },\n nameFrom: ['author'],\n context: null,\n implicit: ['ol', 'ul', 'dl'],\n unsupported: false\n },\n listbox: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-expanded', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n all: ['option']\n },\n nameFrom: ['author'],\n context: null,\n implicit: ['select'],\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n listitem: {\n type: 'structure',\n attributes: {\n allowed: ['aria-level', 'aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['list'],\n implicit: ['li', 'dt'],\n unsupported: false\n },\n log: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n main: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['main'],\n unsupported: false,\n allowedElements: ['article', 'section']\n },\n marquee: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n math: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['math'],\n unsupported: false\n },\n menu: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n one: ['menuitem', 'menuitemradio', 'menuitemcheckbox']\n },\n nameFrom: ['author'],\n context: null,\n implicit: ['menu[type=\"context\"]'],\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n menubar: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n one: ['menuitem', 'menuitemradio', 'menuitemcheckbox']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n menuitem: {\n type: 'widget',\n attributes: {\n allowed: ['aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['menu', 'menubar'],\n implicit: ['menuitem[type=\"command\"]'],\n unsupported: false,\n allowedElements: ['button', 'li', {\n nodeName: 'iput',\n properties: {\n type: ['image', 'button']\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n menuitemcheckbox: {\n type: 'widget',\n attributes: {\n allowed: ['aria-checked', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['menu', 'menubar'],\n implicit: ['menuitem[type=\"checkbox\"]'],\n unsupported: false,\n allowedElements: [{\n nodeName: ['button', 'li']\n }, {\n nodeName: 'input',\n properties: {\n type: ['checkbox', 'image', 'button']\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n menuitemradio: {\n type: 'widget',\n attributes: {\n allowed: ['aria-checked', 'aria-selected', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['menu', 'menubar'],\n implicit: ['menuitem[type=\"radio\"]'],\n unsupported: false,\n allowedElements: [{\n nodeName: ['button', 'li']\n }, {\n nodeName: 'input',\n properties: {\n type: ['image', 'button', 'radio']\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n navigation: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['nav'],\n unsupported: false,\n allowedElements: ['section']\n },\n none: {\n type: 'structure',\n attributes: null,\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: ['article', 'aside', 'dl', 'embed', 'figcaption', 'fieldset', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'ol', 'section', 'ul']\n }, {\n nodeName: 'img',\n attributes: {\n alt: isNotNull\n }\n }]\n },\n note: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['aside']\n },\n option: {\n type: 'widget',\n attributes: {\n allowed: ['aria-selected', 'aria-posinset', 'aria-setsize', 'aria-checked', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['listbox'],\n implicit: ['option'],\n unsupported: false,\n allowedElements: [{\n nodeName: ['button', 'li']\n }, {\n nodeName: 'input',\n properties: {\n type: ['checkbox', 'button']\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n presentation: {\n type: 'structure',\n attributes: null,\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: [{\n nodeName: ['article', 'aside', 'dl', 'embed', 'figcaption', 'fieldset', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'ol', 'section', 'ul']\n }, {\n nodeName: 'img',\n attributes: {\n alt: isNotNull\n }\n }]\n },\n progressbar: {\n type: 'widget',\n attributes: {\n allowed: ['aria-valuetext', 'aria-valuenow', 'aria-valuemax', 'aria-valuemin', 'aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['progress'],\n unsupported: false\n },\n radio: {\n type: 'widget',\n attributes: {\n allowed: ['aria-selected', 'aria-posinset', 'aria-setsize', 'aria-required', 'aria-errormessage', 'aria-checked']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['input[type=\"radio\"]'],\n unsupported: false,\n allowedElements: [{\n nodeName: ['button', 'li']\n }, {\n nodeName: 'input',\n properties: {\n type: ['image', 'button']\n }\n }]\n },\n radiogroup: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-required', 'aria-expanded', 'aria-readonly', 'aria-errormessage']\n },\n owned: {\n all: ['radio']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: {\n nodeName: ['ol', 'ul']\n }\n },\n range: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n region: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['section[aria-label]', 'section[aria-labelledby]', 'section[title]'],\n unsupported: false,\n allowedElements: {\n nodeName: ['article', 'aside']\n }\n },\n roletype: {\n type: 'abstract',\n unsupported: false\n },\n row: {\n type: 'structure',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-colindex', 'aria-expanded', 'aria-level', 'aria-selected', 'aria-rowindex', 'aria-errormessage']\n },\n owned: {\n one: ['cell', 'columnheader', 'rowheader', 'gridcell']\n },\n nameFrom: ['author', 'contents'],\n context: ['rowgroup', 'grid', 'treegrid', 'table'],\n implicit: ['tr'],\n unsupported: false\n },\n rowgroup: {\n type: 'structure',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-errormessage']\n },\n owned: {\n all: ['row']\n },\n nameFrom: ['author', 'contents'],\n context: ['grid', 'table', 'treegrid'],\n implicit: ['tbody', 'thead', 'tfoot'],\n unsupported: false\n },\n rowheader: {\n type: 'structure',\n attributes: {\n allowed: ['aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-required', 'aria-readonly', 'aria-selected', 'aria-sort', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['row'],\n implicit: ['th'],\n unsupported: false\n },\n scrollbar: {\n type: 'widget',\n attributes: {\n required: ['aria-controls', 'aria-valuenow'],\n allowed: ['aria-valuetext', 'aria-orientation', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false\n },\n search: {\n type: 'landmark',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: {\n nodeName: ['aside', 'form', 'section']\n }\n },\n searchbox: {\n type: 'widget',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required', 'aria-placeholder', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['input[type=\"search\"]'],\n unsupported: false,\n allowedElements: {\n nodeName: 'input',\n properties: {\n type: 'text'\n }\n }\n },\n section: {\n nameFrom: ['author', 'contents'],\n type: 'abstract',\n unsupported: false\n },\n sectionhead: {\n nameFrom: ['author', 'contents'],\n type: 'abstract',\n unsupported: false\n },\n select: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n },\n separator: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-orientation', 'aria-valuenow', 'aria-valuemax', 'aria-valuemin', 'aria-valuetext', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['hr'],\n unsupported: false,\n allowedElements: ['li']\n },\n slider: {\n type: 'widget',\n attributes: {\n allowed: ['aria-valuetext', 'aria-orientation', 'aria-readonly', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin'],\n required: ['aria-valuenow']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['input[type=\"range\"]'],\n unsupported: false\n },\n spinbutton: {\n type: 'widget',\n attributes: {\n allowed: ['aria-valuetext', 'aria-required', 'aria-readonly', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin'],\n required: ['aria-valuenow']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['input[type=\"number\"]'],\n unsupported: false,\n allowedElements: {\n nodeName: 'input',\n properties: {\n type: ['text', 'tel']\n }\n }\n },\n status: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['output'],\n unsupported: false,\n allowedElements: ['section']\n },\n structure: {\n type: 'abstract',\n unsupported: false\n },\n switch: {\n type: 'widget',\n attributes: {\n allowed: ['aria-errormessage'],\n required: ['aria-checked']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n unsupported: false,\n allowedElements: ['button', {\n nodeName: 'input',\n properties: {\n type: ['checkbox', 'image', 'button']\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n tab: {\n type: 'widget',\n attributes: {\n allowed: ['aria-selected', 'aria-expanded', 'aria-setsize', 'aria-posinset', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['tablist'],\n unsupported: false,\n allowedElements: [{\n nodeName: ['button', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li']\n }, {\n nodeName: 'input',\n properties: {\n type: 'button'\n }\n }, {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n table: {\n type: 'structure',\n attributes: {\n allowed: ['aria-colcount', 'aria-rowcount', 'aria-errormessage']\n },\n owned: {\n one: ['rowgroup', 'row']\n },\n nameFrom: ['author'],\n context: null,\n implicit: ['table'],\n unsupported: false\n },\n tablist: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-level', 'aria-multiselectable', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n all: ['tab']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n tabpanel: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['section']\n },\n term: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n implicit: ['dt'],\n unsupported: false\n },\n textbox: {\n type: 'widget',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required', 'aria-placeholder', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['input[type=\"text\"]', 'input[type=\"email\"]', 'input[type=\"password\"]', 'input[type=\"tel\"]', 'input[type=\"url\"]', 'input:not([type])', 'textarea'],\n unsupported: false\n },\n timer: {\n type: 'widget',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n unsupported: false\n },\n toolbar: {\n type: 'structure',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author'],\n context: null,\n implicit: ['menu[type=\"toolbar\"]'],\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n tooltip: {\n type: 'structure',\n attributes: {\n allowed: ['aria-expanded', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: null,\n unsupported: false\n },\n tree: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-multiselectable', 'aria-required', 'aria-expanded', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n all: ['treeitem']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false,\n allowedElements: ['ol', 'ul']\n },\n treegrid: {\n type: 'composite',\n attributes: {\n allowed: ['aria-activedescendant', 'aria-colcount', 'aria-expanded', 'aria-level', 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-rowcount', 'aria-orientation', 'aria-errormessage']\n },\n owned: {\n one: ['rowgroup', 'row']\n },\n nameFrom: ['author'],\n context: null,\n unsupported: false\n },\n treeitem: {\n type: 'widget',\n attributes: {\n allowed: ['aria-checked', 'aria-selected', 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage']\n },\n owned: null,\n nameFrom: ['author', 'contents'],\n context: ['group', 'tree'],\n unsupported: false,\n allowedElements: ['li', {\n nodeName: 'a',\n attributes: {\n href: isNotNull\n }\n }]\n },\n widget: {\n type: 'abstract',\n unsupported: false\n },\n window: {\n nameFrom: ['author'],\n type: 'abstract',\n unsupported: false\n }\n };\n lookupTable.elementsAllowedNoRole = [{\n nodeName: ['base', 'body', 'caption', 'col', 'colgroup', 'datalist', 'dd', 'details', 'dt', 'head', 'html', 'keygen', 'label', 'legend', 'main', 'map', 'math', 'meta', 'meter', 'noscript', 'optgroup', 'param', 'picture', 'progress', 'script', 'source', 'style', 'template', 'textarea', 'title', 'track']\n }, {\n nodeName: 'area',\n attributes: {\n href: isNotNull\n }\n }, {\n nodeName: 'input',\n properties: {\n type: ['color', 'data', 'datatime', 'file', 'hidden', 'month', 'number', 'password', 'range', 'reset', 'submit', 'time', 'week']\n }\n }, {\n nodeName: 'link',\n attributes: {\n href: isNotNull\n }\n }, {\n nodeName: 'menu',\n attributes: {\n type: 'context'\n }\n }, {\n nodeName: 'menuitem',\n attributes: {\n type: ['command', 'checkbox', 'radio']\n }\n }, {\n nodeName: 'select',\n condition: function condition(vNode) {\n if (!(vNode instanceof axe.AbstractVirtualNode)) {\n vNode = axe.utils.getNodeFromTree(vNode);\n }\n\n return Number(vNode.attr('size')) > 1;\n },\n properties: {\n multiple: true\n }\n }, {\n nodeName: ['clippath', 'cursor', 'defs', 'desc', 'feblend', 'fecolormatrix', 'fecomponenttransfer', 'fecomposite', 'feconvolvematrix', 'fediffuselighting', 'fedisplacementmap', 'fedistantlight', 'fedropshadow', 'feflood', 'fefunca', 'fefuncb', 'fefuncg', 'fefuncr', 'fegaussianblur', 'feimage', 'femerge', 'femergenode', 'femorphology', 'feoffset', 'fepointlight', 'fespecularlighting', 'fespotlight', 'fetile', 'feturbulence', 'filter', 'hatch', 'hatchpath', 'lineargradient', 'marker', 'mask', 'meshgradient', 'meshpatch', 'meshrow', 'metadata', 'mpath', 'pattern', 'radialgradient', 'solidcolor', 'stop', 'switch', 'view']\n }];\n lookupTable.elementsAllowedAnyRole = [{\n nodeName: 'a',\n attributes: {\n href: isNull\n }\n }, {\n nodeName: 'img',\n attributes: {\n alt: isNull\n }\n }, {\n nodeName: ['abbr', 'address', 'canvas', 'div', 'p', 'pre', 'blockquote', 'ins', 'del', 'output', 'span', 'table', 'tbody', 'thead', 'tfoot', 'td', 'em', 'strong', 'small', 's', 'cite', 'q', 'dfn', 'abbr', 'time', 'code', 'var', 'samp', 'kbd', 'sub', 'sup', 'i', 'b', 'u', 'mark', 'ruby', 'rt', 'rp', 'bdi', 'bdo', 'br', 'wbr', 'th', 'tr']\n }];\n lookupTable.evaluateRoleForElement = {\n A: function A(_ref24) {\n var node = _ref24.node,\n out = _ref24.out;\n\n if (node.namespaceURI === 'http://www.w3.org/2000/svg') {\n return true;\n }\n\n if (node.href.length) {\n return out;\n }\n\n return true;\n },\n AREA: function AREA(_ref25) {\n var node = _ref25.node;\n return !node.href;\n },\n BUTTON: function BUTTON(_ref26) {\n var node = _ref26.node,\n role = _ref26.role,\n out = _ref26.out;\n\n if (node.getAttribute('type') === 'menu') {\n return role === 'menuitem';\n }\n\n return out;\n },\n IMG: function IMG(_ref27) {\n var node = _ref27.node,\n role = _ref27.role,\n out = _ref27.out;\n\n switch (node.alt) {\n case null:\n return out;\n\n case '':\n return role === 'presentation' || role === 'none';\n\n default:\n return role !== 'presentation' && role !== 'none';\n }\n },\n INPUT: function INPUT(_ref28) {\n var node = _ref28.node,\n role = _ref28.role,\n out = _ref28.out;\n\n switch (node.type) {\n case 'button':\n case 'image':\n return out;\n\n case 'checkbox':\n if (role === 'button' && node.hasAttribute('aria-pressed')) {\n return true;\n }\n\n return out;\n\n case 'radio':\n return role === 'menuitemradio';\n\n case 'text':\n return role === 'combobox' || role === 'searchbox' || role === 'spinbutton';\n\n case 'tel':\n return role === 'combobox' || role === 'spinbutton';\n\n case 'url':\n case 'search':\n case 'email':\n return role === 'combobox';\n\n default:\n return false;\n }\n },\n LI: function LI(_ref29) {\n var node = _ref29.node,\n out = _ref29.out;\n var hasImplicitListitemRole = axe.utils.matchesSelector(node, 'ol li, ul li');\n\n if (hasImplicitListitemRole) {\n return out;\n }\n\n return true;\n },\n MENU: function MENU(_ref30) {\n var node = _ref30.node;\n\n if (node.getAttribute('type') === 'context') {\n return false;\n }\n\n return true;\n },\n OPTION: function OPTION(_ref31) {\n var node = _ref31.node;\n var withinOptionList = axe.utils.matchesSelector(node, 'select > option, datalist > option, optgroup > option');\n return !withinOptionList;\n },\n SELECT: function SELECT(_ref32) {\n var node = _ref32.node,\n role = _ref32.role;\n return !node.multiple && node.size <= 1 && role === 'menu';\n },\n SVG: function SVG(_ref33) {\n var node = _ref33.node,\n out = _ref33.out;\n\n if (node.parentNode && node.parentNode.namespaceURI === 'http://www.w3.org/2000/svg') {\n return true;\n }\n\n return out;\n }\n };\n lookupTable.rolesOfType = {\n widget: ['button', 'checkbox', 'dialog', 'gridcell', 'link', 'log', 'marquee', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'progressbar', 'radio', 'scrollbar', 'searchbox', 'slider', 'spinbutton', 'status', 'switch', 'tab', 'tabpanel', 'textbox', 'timer', 'tooltip', 'tree', 'treeitem']\n };\n var color = {};\n commons.color = color;\n var dom = commons.dom = {};\n var forms = {};\n commons.forms = forms;\n\n function matches(vNode, definition) {\n return matches.fromDefinition(vNode, definition);\n }\n\n commons.matches = matches;\n var table = commons.table = {};\n var text = commons.text = {\n EdgeFormDefaults: {}\n };\n var utils = commons.utils = axe.utils;\n\n aria.arialabelText = function arialabelText(node) {\n if (node instanceof axe.AbstractVirtualNode === false) {\n if (node.nodeType !== 1) {\n return '';\n }\n\n node = axe.utils.getNodeFromTree(node);\n }\n\n return node.attr('aria-label') || '';\n };\n\n aria.arialabelledbyText = function arialabelledbyText(node) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n node = node.actualNode || node;\n\n if (node.nodeType !== 1 || context.inLabelledByContext || context.inControlContext) {\n return '';\n }\n\n var refs = dom.idrefs(node, 'aria-labelledby').filter(function (elm) {\n return elm;\n });\n return refs.reduce(function (accessibleName, elm) {\n var accessibleNameAdd = text.accessibleText(elm, _extends({\n inLabelledByContext: true,\n startNode: context.startNode || node\n }, context));\n\n if (!accessibleName) {\n return accessibleNameAdd;\n } else {\n return ''.concat(accessibleName, ' ').concat(accessibleNameAdd);\n }\n }, '');\n };\n\n aria.requiredAttr = function (role) {\n var roles = aria.lookupTable.role[role],\n attr = roles && roles.attributes && roles.attributes.required;\n return attr || [];\n };\n\n aria.allowedAttr = function (role) {\n var roles = aria.lookupTable.role[role],\n attr = roles && roles.attributes && roles.attributes.allowed || [],\n requiredAttr = roles && roles.attributes && roles.attributes.required || [];\n return attr.concat(aria.lookupTable.globalAttributes).concat(requiredAttr);\n };\n\n aria.validateAttr = function validateAttr(att) {\n var attrDefinition = aria.lookupTable.attributes[att];\n return !!attrDefinition;\n };\n\n var dpubRoles = ['doc-backlink', 'doc-biblioentry', 'doc-biblioref', 'doc-cover', 'doc-endnote', 'doc-glossref', 'doc-noteref'];\n\n function getRoleSegments(node) {\n var roles = [];\n\n if (!node) {\n return roles;\n }\n\n if (node.hasAttribute('role')) {\n var nodeRoles = axe.utils.tokenList(node.getAttribute('role').toLowerCase());\n roles = roles.concat(nodeRoles);\n }\n\n if (node.hasAttributeNS('http://www.idpf.org/2007/ops', 'type')) {\n var epubRoles = axe.utils.tokenList(node.getAttributeNS('http://www.idpf.org/2007/ops', 'type').toLowerCase()).map(function (role) {\n return 'doc-'.concat(role);\n });\n roles = roles.concat(epubRoles);\n }\n\n roles = roles.filter(function (role) {\n return axe.commons.aria.isValidRole(role);\n });\n return roles;\n }\n\n aria.getElementUnallowedRoles = function getElementUnallowedRoles(node) {\n var allowImplicit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var tagName = node.nodeName.toUpperCase();\n\n if (!axe.utils.isHtmlElement(node)) {\n return [];\n }\n\n var roleSegments = getRoleSegments(node);\n var implicitRole = axe.commons.aria.implicitRole(node);\n var unallowedRoles = roleSegments.filter(function (role) {\n if (allowImplicit && role === implicitRole) {\n return false;\n }\n\n if (allowImplicit && dpubRoles.includes(role)) {\n var roleType = axe.commons.aria.getRoleType(role);\n\n if (implicitRole !== roleType) {\n return true;\n }\n }\n\n if (!allowImplicit && !(role === 'row' && tagName === 'TR' && axe.utils.matchesSelector(node, 'table[role=\"grid\"] > tr'))) {\n return true;\n }\n\n return !aria.isAriaRoleAllowedOnElement(node, role);\n });\n return unallowedRoles;\n };\n\n aria.getOwnedVirtual = function getOwned(_ref34) {\n var actualNode = _ref34.actualNode,\n children = _ref34.children;\n\n if (!actualNode || !children) {\n throw new Error('getOwnedVirtual requires a virtual node');\n }\n\n return dom.idrefs(actualNode, 'aria-owns').reduce(function (ownedElms, element) {\n if (element) {\n var virtualNode = axe.utils.getNodeFromTree(element);\n ownedElms.push(virtualNode);\n }\n\n return ownedElms;\n }, children);\n };\n\n aria.getRole = function getRole(node) {\n var _ref35 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n noImplicit = _ref35.noImplicit,\n fallback = _ref35.fallback,\n abstracts = _ref35.abstracts,\n dpub = _ref35.dpub;\n\n node = node.actualNode || node;\n\n if (node.nodeType !== 1) {\n return null;\n }\n\n var roleAttr = (node.getAttribute('role') || '').trim().toLowerCase();\n var roleList = fallback ? axe.utils.tokenList(roleAttr) : [roleAttr];\n var validRoles = roleList.filter(function (role) {\n if (!dpub && role.substr(0, 4) === 'doc-') {\n return false;\n }\n\n return aria.isValidRole(role, {\n allowAbstract: abstracts\n });\n });\n var explicitRole = validRoles[0];\n\n if (!explicitRole && !noImplicit) {\n return aria.implicitRole(node);\n }\n\n return explicitRole || null;\n };\n\n var idRefsRegex = /^idrefs?$/;\n\n function cacheIdRefs(node, refAttrs) {\n if (node.hasAttribute) {\n var idRefs = axe._cache.get('idRefs');\n\n if (node.nodeName.toUpperCase() === 'LABEL' && node.hasAttribute('for')) {\n idRefs[node.getAttribute('for')] = true;\n }\n\n for (var i = 0; i < refAttrs.length; ++i) {\n var attr = refAttrs[i];\n\n if (!node.hasAttribute(attr)) {\n continue;\n }\n\n var attrValue = node.getAttribute(attr);\n var tokens = axe.utils.tokenList(attrValue);\n\n for (var k = 0; k < tokens.length; ++k) {\n idRefs[tokens[k]] = true;\n }\n }\n }\n\n for (var _i3 = 0; _i3 < node.children.length; _i3++) {\n cacheIdRefs(node.children[_i3], refAttrs);\n }\n }\n\n aria.isAccessibleRef = function isAccessibleRef(node) {\n node = node.actualNode || node;\n var root = dom.getRootNode(node);\n root = root.documentElement || root;\n var id = node.id;\n\n if (!axe._cache.get('idRefs')) {\n axe._cache.set('idRefs', {});\n\n var refAttrs = Object.keys(aria.lookupTable.attributes).filter(function (attr) {\n var type = aria.lookupTable.attributes[attr].type;\n return idRefsRegex.test(type);\n });\n cacheIdRefs(root, refAttrs);\n }\n\n return axe._cache.get('idRefs')[id] === true;\n };\n\n aria.isAriaRoleAllowedOnElement = function isAriaRoleAllowedOnElement(node, role) {\n var nodeName = node.nodeName.toUpperCase();\n var lookupTable = axe.commons.aria.lookupTable;\n\n if (matches(node, lookupTable.elementsAllowedNoRole)) {\n return false;\n }\n\n if (matches(node, lookupTable.elementsAllowedAnyRole)) {\n return true;\n }\n\n var roleValue = lookupTable.role[role];\n\n if (!roleValue || !roleValue.allowedElements) {\n return false;\n }\n\n var out = matches(node, roleValue.allowedElements);\n\n if (Object.keys(lookupTable.evaluateRoleForElement).includes(nodeName)) {\n return lookupTable.evaluateRoleForElement[nodeName]({\n node: node,\n role: role,\n out: out\n });\n }\n\n return out;\n };\n\n aria.isUnsupportedRole = function (role) {\n var roleDefinition = aria.lookupTable.role[role];\n return roleDefinition ? roleDefinition.unsupported : false;\n };\n\n aria.labelVirtual = function (_ref36) {\n var actualNode = _ref36.actualNode;\n var ref, candidate;\n\n if (actualNode.getAttribute('aria-labelledby')) {\n ref = dom.idrefs(actualNode, 'aria-labelledby');\n candidate = ref.map(function (thing) {\n var vNode = axe.utils.getNodeFromTree(thing);\n return vNode ? text.visibleVirtual(vNode, true) : '';\n }).join(' ').trim();\n\n if (candidate) {\n return candidate;\n }\n }\n\n candidate = actualNode.getAttribute('aria-label');\n\n if (candidate) {\n candidate = text.sanitize(candidate).trim();\n\n if (candidate) {\n return candidate;\n }\n }\n\n return null;\n };\n\n aria.label = function (node) {\n node = axe.utils.getNodeFromTree(node);\n return aria.labelVirtual(node);\n };\n\n aria.namedFromContents = function namedFromContents(node) {\n var _ref37 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n strict = _ref37.strict;\n\n node = node.actualNode || node;\n\n if (node.nodeType !== 1) {\n return false;\n }\n\n var role = aria.getRole(node);\n var roleDef = aria.lookupTable.role[role];\n\n if (roleDef && roleDef.nameFrom.includes('contents') || node.nodeName.toUpperCase() === 'TABLE') {\n return true;\n }\n\n if (strict) {\n return false;\n }\n\n return !roleDef || ['presentation', 'none'].includes(role);\n };\n\n aria.isValidRole = function (role) {\n var _ref38 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowAbstract = _ref38.allowAbstract,\n _ref38$flagUnsupporte = _ref38.flagUnsupported,\n flagUnsupported = _ref38$flagUnsupporte === void 0 ? false : _ref38$flagUnsupporte;\n\n var roleDefinition = aria.lookupTable.role[role];\n var isRoleUnsupported = roleDefinition ? roleDefinition.unsupported : false;\n\n if (!roleDefinition || flagUnsupported && isRoleUnsupported) {\n return false;\n }\n\n return allowAbstract ? true : roleDefinition.type !== 'abstract';\n };\n\n aria.getRolesWithNameFromContents = function () {\n return Object.keys(aria.lookupTable.role).filter(function (r) {\n return aria.lookupTable.role[r].nameFrom && aria.lookupTable.role[r].nameFrom.indexOf('contents') !== -1;\n });\n };\n\n aria.getRolesByType = function (roleType) {\n return Object.keys(aria.lookupTable.role).filter(function (r) {\n return aria.lookupTable.role[r].type === roleType;\n });\n };\n\n aria.getRoleType = function (role) {\n var r = aria.lookupTable.role[role];\n return r && r.type || null;\n };\n\n aria.requiredOwned = function (role) {\n 'use strict';\n\n var owned = null,\n roles = aria.lookupTable.role[role];\n\n if (roles) {\n owned = axe.utils.clone(roles.owned);\n }\n\n return owned;\n };\n\n aria.requiredContext = function (role) {\n 'use strict';\n\n var context = null,\n roles = aria.lookupTable.role[role];\n\n if (roles) {\n context = axe.utils.clone(roles.context);\n }\n\n return context;\n };\n\n aria.implicitNodes = function (role) {\n 'use strict';\n\n var implicit = null,\n roles = aria.lookupTable.role[role];\n\n if (roles && roles.implicit) {\n implicit = axe.utils.clone(roles.implicit);\n }\n\n return implicit;\n };\n\n aria.implicitRole = function (node) {\n 'use strict';\n\n var isValidImplicitRole = function isValidImplicitRole(set, role) {\n var validForNodeType = function validForNodeType(implicitNodeTypeSelector) {\n return axe.utils.matchesSelector(node, implicitNodeTypeSelector);\n };\n\n if (role.implicit && role.implicit.some(validForNodeType)) {\n set.push(role.name);\n }\n\n return set;\n };\n\n var sortRolesByOptimalAriaContext = function sortRolesByOptimalAriaContext(roles, ariaAttributes) {\n var getScore = function getScore(role) {\n var allowedAriaAttributes = aria.allowedAttr(role);\n return allowedAriaAttributes.reduce(function (score, attribute) {\n return score + (ariaAttributes.indexOf(attribute) > -1 ? 1 : 0);\n }, 0);\n };\n\n var scored = roles.map(function (role) {\n return {\n score: getScore(role),\n name: role\n };\n });\n var sorted = scored.sort(function (scoredRoleA, scoredRoleB) {\n return scoredRoleB.score - scoredRoleA.score;\n });\n return sorted.map(function (sortedRole) {\n return sortedRole.name;\n });\n };\n\n var roles = Object.keys(aria.lookupTable.role).map(function (role) {\n var lookup = aria.lookupTable.role[role];\n return {\n name: role,\n implicit: lookup && lookup.implicit\n };\n });\n var availableImplicitRoles = roles.reduce(isValidImplicitRole, []);\n\n if (!availableImplicitRoles.length) {\n return null;\n }\n\n var nodeAttributes = axe.utils.getNodeAttributes(node);\n var ariaAttributes = [];\n\n for (var i = 0, j = nodeAttributes.length; i < j; i++) {\n var attr = nodeAttributes[i];\n\n if (attr.name.match(/^aria-/)) {\n ariaAttributes.push(attr.name);\n }\n }\n\n return sortRolesByOptimalAriaContext(availableImplicitRoles, ariaAttributes).shift();\n };\n\n aria.validateAttrValue = function validateAttrValue(node, attr) {\n 'use strict';\n\n var matches,\n list,\n value = node.getAttribute(attr),\n attrInfo = aria.lookupTable.attributes[attr];\n var doc = dom.getRootNode(node);\n\n if (!attrInfo) {\n return true;\n }\n\n if (attrInfo.allowEmpty && (!value || value.trim() === '')) {\n return true;\n }\n\n switch (attrInfo.type) {\n case 'boolean':\n case 'nmtoken':\n return typeof value === 'string' && attrInfo.values.includes(value.toLowerCase());\n\n case 'nmtokens':\n list = axe.utils.tokenList(value);\n return list.reduce(function (result, token) {\n return result && attrInfo.values.includes(token);\n }, list.length !== 0);\n\n case 'idref':\n return !!(value && doc.getElementById(value));\n\n case 'idrefs':\n list = axe.utils.tokenList(value);\n return list.some(function (token) {\n return doc.getElementById(token);\n });\n\n case 'string':\n return value.trim() !== '';\n\n case 'decimal':\n matches = value.match(/^[-+]?([0-9]*)\\.?([0-9]*)$/);\n return !!(matches && (matches[1] || matches[2]));\n\n case 'int':\n return /^[-+]?[0-9]+$/.test(value);\n }\n };\n\n color.centerPointOfRect = function centerPointOfRect(rect) {\n if (rect.left > window.innerWidth) {\n return undefined;\n }\n\n if (rect.top > window.innerHeight) {\n return undefined;\n }\n\n var x = Math.min(Math.ceil(rect.left + rect.width / 2), window.innerWidth - 1);\n var y = Math.min(Math.ceil(rect.top + rect.height / 2), window.innerHeight - 1);\n return {\n x: x,\n y: y\n };\n };\n\n color.Color = function (red, green, blue, alpha) {\n this.red = red;\n this.green = green;\n this.blue = blue;\n this.alpha = alpha;\n\n this.toHexString = function () {\n var redString = Math.round(this.red).toString(16);\n var greenString = Math.round(this.green).toString(16);\n var blueString = Math.round(this.blue).toString(16);\n return '#' + (this.red > 15.5 ? redString : '0' + redString) + (this.green > 15.5 ? greenString : '0' + greenString) + (this.blue > 15.5 ? blueString : '0' + blueString);\n };\n\n var rgbRegex = /^rgb\\((\\d+), (\\d+), (\\d+)\\)$/;\n var rgbaRegex = /^rgba\\((\\d+), (\\d+), (\\d+), (\\d*(\\.\\d+)?)\\)/;\n\n this.parseRgbString = function (colorString) {\n if (colorString === 'transparent') {\n this.red = 0;\n this.green = 0;\n this.blue = 0;\n this.alpha = 0;\n return;\n }\n\n var match = colorString.match(rgbRegex);\n\n if (match) {\n this.red = parseInt(match[1], 10);\n this.green = parseInt(match[2], 10);\n this.blue = parseInt(match[3], 10);\n this.alpha = 1;\n return;\n }\n\n match = colorString.match(rgbaRegex);\n\n if (match) {\n this.red = parseInt(match[1], 10);\n this.green = parseInt(match[2], 10);\n this.blue = parseInt(match[3], 10);\n this.alpha = Math.round(parseFloat(match[4]) * 100) / 100;\n return;\n }\n };\n\n this.getRelativeLuminance = function () {\n var rSRGB = this.red / 255;\n var gSRGB = this.green / 255;\n var bSRGB = this.blue / 255;\n var r = rSRGB <= .03928 ? rSRGB / 12.92 : Math.pow((rSRGB + .055) / 1.055, 2.4);\n var g = gSRGB <= .03928 ? gSRGB / 12.92 : Math.pow((gSRGB + .055) / 1.055, 2.4);\n var b = bSRGB <= .03928 ? bSRGB / 12.92 : Math.pow((bSRGB + .055) / 1.055, 2.4);\n return .2126 * r + .7152 * g + .0722 * b;\n };\n };\n\n color.flattenColors = function (fgColor, bgColor) {\n var alpha = fgColor.alpha;\n var r = (1 - alpha) * bgColor.red + alpha * fgColor.red;\n var g = (1 - alpha) * bgColor.green + alpha * fgColor.green;\n var b = (1 - alpha) * bgColor.blue + alpha * fgColor.blue;\n var a = fgColor.alpha + bgColor.alpha * (1 - fgColor.alpha);\n return new color.Color(r, g, b, a);\n };\n\n color.getContrast = function (bgColor, fgColor) {\n if (!fgColor || !bgColor) {\n return null;\n }\n\n if (fgColor.alpha < 1) {\n fgColor = color.flattenColors(fgColor, bgColor);\n }\n\n var bL = bgColor.getRelativeLuminance();\n var fL = fgColor.getRelativeLuminance();\n return (Math.max(fL, bL) + .05) / (Math.min(fL, bL) + .05);\n };\n\n color.hasValidContrastRatio = function (bg, fg, fontSize, isBold) {\n var contrast = color.getContrast(bg, fg);\n var isSmallFont = isBold && Math.ceil(fontSize * 72) / 96 < 14 || !isBold && Math.ceil(fontSize * 72) / 96 < 18;\n var expectedContrastRatio = isSmallFont ? 4.5 : 3;\n return {\n isValid: contrast > expectedContrastRatio,\n contrastRatio: contrast,\n expectedContrastRatio: expectedContrastRatio\n };\n };\n\n color.elementHasImage = function elementHasImage(elm, style) {\n var graphicNodes = ['IMG', 'CANVAS', 'OBJECT', 'IFRAME', 'VIDEO', 'SVG'];\n var nodeName = elm.nodeName.toUpperCase();\n\n if (graphicNodes.includes(nodeName)) {\n axe.commons.color.incompleteData.set('bgColor', 'imgNode');\n return true;\n }\n\n style = style || window.getComputedStyle(elm);\n var bgImageStyle = style.getPropertyValue('background-image');\n var hasBgImage = bgImageStyle !== 'none';\n\n if (hasBgImage) {\n var hasGradient = /gradient/.test(bgImageStyle);\n axe.commons.color.incompleteData.set('bgColor', hasGradient ? 'bgGradient' : 'bgImage');\n }\n\n return hasBgImage;\n };\n\n function _getFonts(style) {\n return style.getPropertyValue('font-family').split(/[,;]/g).map(function (font) {\n return font.trim().toLowerCase();\n });\n }\n\n function elementIsDistinct(node, ancestorNode) {\n var nodeStyle = window.getComputedStyle(node);\n\n if (nodeStyle.getPropertyValue('background-image') !== 'none') {\n return true;\n }\n\n var hasBorder = ['border-bottom', 'border-top', 'outline'].reduce(function (result, edge) {\n var borderClr = new color.Color();\n borderClr.parseRgbString(nodeStyle.getPropertyValue(edge + '-color'));\n return result || nodeStyle.getPropertyValue(edge + '-style') !== 'none' && parseFloat(nodeStyle.getPropertyValue(edge + '-width')) > 0 && borderClr.alpha !== 0;\n }, false);\n\n if (hasBorder) {\n return true;\n }\n\n var parentStyle = window.getComputedStyle(ancestorNode);\n\n if (_getFonts(nodeStyle)[0] !== _getFonts(parentStyle)[0]) {\n return true;\n }\n\n var hasStyle = ['text-decoration-line', 'text-decoration-style', 'font-weight', 'font-style', 'font-size'].reduce(function (result, cssProp) {\n return result || nodeStyle.getPropertyValue(cssProp) !== parentStyle.getPropertyValue(cssProp);\n }, false);\n var tDec = nodeStyle.getPropertyValue('text-decoration');\n\n if (tDec.split(' ').length < 3) {\n hasStyle = hasStyle || tDec !== parentStyle.getPropertyValue('text-decoration');\n }\n\n return hasStyle;\n }\n\n color.elementIsDistinct = elementIsDistinct;\n\n color.getBackgroundColor = function getBackgroundColor(elm) {\n var bgElms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var bgColors = [];\n var elmStack = color.getBackgroundStack(elm);\n (elmStack || []).some(function (bgElm) {\n var bgElmStyle = window.getComputedStyle(bgElm);\n var bgColor = color.getOwnBackgroundColor(bgElmStyle);\n\n if (elmPartiallyObscured(elm, bgElm, bgColor) || color.elementHasImage(bgElm, bgElmStyle)) {\n bgColors = null;\n bgElms.push(bgElm);\n return true;\n }\n\n if (bgColor.alpha !== 0) {\n bgElms.push(bgElm);\n bgColors.push(bgColor);\n return bgColor.alpha === 1;\n } else {\n return false;\n }\n });\n\n if (bgColors !== null && elmStack !== null) {\n bgColors.push(new color.Color(255, 255, 255, 1));\n var colors = bgColors.reduce(color.flattenColors);\n return colors;\n }\n\n return null;\n };\n\n color.getBackgroundStack = function getBackgroundStack(elm) {\n var elmStack = color.filteredRectStack(elm);\n\n if (elmStack === null) {\n return null;\n }\n\n elmStack = dom.reduceToElementsBelowFloating(elmStack, elm);\n elmStack = sortPageBackground(elmStack);\n var elmIndex = elmStack.indexOf(elm);\n\n if (calculateObscuringElement(elmIndex, elmStack, elm)) {\n axe.commons.color.incompleteData.set('bgColor', 'bgOverlap');\n return null;\n }\n\n return elmIndex !== -1 ? elmStack : null;\n };\n\n color.filteredRectStack = function filteredRectStack(elm) {\n var rectStack = color.getRectStack(elm);\n\n if (rectStack && rectStack.length === 1) {\n return rectStack[0];\n }\n\n if (rectStack && rectStack.length > 1) {\n var boundingStack = rectStack.shift();\n var isSame;\n rectStack.forEach(function (rectList, index) {\n if (index === 0) {\n return;\n }\n\n var rectA = rectStack[index - 1],\n rectB = rectStack[index];\n isSame = rectA.every(function (element, elementIndex) {\n return element === rectB[elementIndex];\n }) || boundingStack.includes(elm);\n });\n\n if (!isSame) {\n axe.commons.color.incompleteData.set('bgColor', 'elmPartiallyObscuring');\n return null;\n }\n\n return rectStack[0];\n }\n\n axe.commons.color.incompleteData.set('bgColor', 'outsideViewport');\n return null;\n };\n\n color.getRectStack = function (elm) {\n var boundingStack = axe.commons.dom.getElementStack(elm);\n var filteredArr = axe.commons.dom.getTextElementStack(elm);\n\n if (!filteredArr || filteredArr.length <= 1) {\n return [boundingStack];\n }\n\n if (filteredArr.some(function (stack) {\n return stack === undefined;\n })) {\n return null;\n }\n\n filteredArr.splice(0, 0, boundingStack);\n return filteredArr;\n };\n\n function sortPageBackground(elmStack) {\n var bodyIndex = elmStack.indexOf(document.body);\n var bgNodes = elmStack;\n var sortBodyElement = bodyIndex > 1 || bodyIndex === -1;\n\n if (sortBodyElement && !color.elementHasImage(document.documentElement) && color.getOwnBackgroundColor(window.getComputedStyle(document.documentElement)).alpha === 0) {\n if (bodyIndex > 1) {\n bgNodes.splice(bodyIndex, 1);\n }\n\n bgNodes.splice(elmStack.indexOf(document.documentElement), 1);\n bgNodes.push(document.body);\n }\n\n return bgNodes;\n }\n\n function elmPartiallyObscured(elm, bgElm, bgColor) {\n var obscured = elm !== bgElm && !dom.visuallyContains(elm, bgElm) && bgColor.alpha !== 0;\n\n if (obscured) {\n axe.commons.color.incompleteData.set('bgColor', 'elmPartiallyObscured');\n }\n\n return obscured;\n }\n\n function calculateObscuringElement(elmIndex, elmStack, originalElm) {\n if (elmIndex > 0) {\n for (var i = elmIndex - 1; i >= 0; i--) {\n var bgElm = elmStack[i];\n\n if (contentOverlapping(originalElm, bgElm)) {\n return true;\n } else {\n elmStack.splice(i, 1);\n }\n }\n }\n\n return false;\n }\n\n function contentOverlapping(targetElement, bgNode) {\n var targetRect = targetElement.getClientRects()[0];\n var obscuringElements = dom.shadowElementsFromPoint(targetRect.left, targetRect.top);\n\n if (obscuringElements) {\n for (var i = 0; i < obscuringElements.length; i++) {\n if (obscuringElements[i] !== targetElement && obscuringElements[i] === bgNode) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n dom.isOpaque = function (node) {\n var style = window.getComputedStyle(node);\n return color.elementHasImage(node, style) || color.getOwnBackgroundColor(style).alpha === 1;\n };\n\n function getOpacity(node) {\n if (!node) {\n return 1;\n }\n\n var vNode = axe.utils.getNodeFromTree(node);\n\n if (vNode && vNode._opacity !== undefined && vNode._opacity !== null) {\n return vNode._opacity;\n }\n\n var nodeStyle = window.getComputedStyle(node);\n var opacity = nodeStyle.getPropertyValue('opacity');\n var finalOpacity = opacity * getOpacity(node.parentElement);\n\n if (vNode) {\n vNode._opacity = finalOpacity;\n }\n\n return finalOpacity;\n }\n\n color.getForegroundColor = function (node, noScroll, bgColor) {\n var nodeStyle = window.getComputedStyle(node);\n var fgColor = new color.Color();\n fgColor.parseRgbString(nodeStyle.getPropertyValue('color'));\n var opacity = getOpacity(node);\n fgColor.alpha = fgColor.alpha * opacity;\n\n if (fgColor.alpha === 1) {\n return fgColor;\n }\n\n if (!bgColor) {\n bgColor = color.getBackgroundColor(node, [], noScroll);\n }\n\n if (bgColor === null) {\n var reason = axe.commons.color.incompleteData.get('bgColor');\n axe.commons.color.incompleteData.set('fgColor', reason);\n return null;\n }\n\n return color.flattenColors(fgColor, bgColor);\n };\n\n color.getOwnBackgroundColor = function getOwnBackgroundColor(elmStyle) {\n var bgColor = new color.Color();\n bgColor.parseRgbString(elmStyle.getPropertyValue('background-color'));\n\n if (bgColor.alpha !== 0) {\n var opacity = elmStyle.getPropertyValue('opacity');\n bgColor.alpha = bgColor.alpha * opacity;\n }\n\n return bgColor;\n };\n\n color.incompleteData = function () {\n var data = {};\n return {\n set: function set(key, reason) {\n if (typeof key !== 'string') {\n throw new Error('Incomplete data: key must be a string');\n }\n\n if (reason) {\n data[key] = reason;\n }\n\n return data[key];\n },\n get: function get(key) {\n return data[key];\n },\n clear: function clear() {\n data = {};\n }\n };\n }();\n\n dom.reduceToElementsBelowFloating = function (elements, targetNode) {\n var floatingPositions = ['fixed', 'sticky'],\n finalElements = [],\n targetFound = false,\n index,\n currentNode,\n style;\n\n for (index = 0; index < elements.length; ++index) {\n currentNode = elements[index];\n\n if (currentNode === targetNode) {\n targetFound = true;\n }\n\n style = window.getComputedStyle(currentNode);\n\n if (!targetFound && floatingPositions.indexOf(style.position) !== -1) {\n finalElements = [];\n continue;\n }\n\n finalElements.push(currentNode);\n }\n\n return finalElements;\n };\n\n dom.findElmsInContext = function (_ref39) {\n var context = _ref39.context,\n value = _ref39.value,\n attr = _ref39.attr,\n _ref39$elm = _ref39.elm,\n elm = _ref39$elm === void 0 ? '' : _ref39$elm;\n var root;\n var escapedValue = axe.utils.escapeSelector(value);\n\n if (context.nodeType === 9 || context.nodeType === 11) {\n root = context;\n } else {\n root = dom.getRootNode(context);\n }\n\n return Array.from(root.querySelectorAll(elm + '[' + attr + '=' + escapedValue + ']'));\n };\n\n dom.findUp = function (element, target) {\n return dom.findUpVirtual(axe.utils.getNodeFromTree(element), target);\n };\n\n dom.findUpVirtual = function (element, target) {\n var parent;\n parent = element.actualNode;\n\n if (!element.shadowId && typeof element.actualNode.closest === 'function') {\n var match = element.actualNode.closest(target);\n\n if (match) {\n return match;\n }\n\n return null;\n }\n\n do {\n parent = parent.assignedSlot ? parent.assignedSlot : parent.parentNode;\n\n if (parent && parent.nodeType === 11) {\n parent = parent.host;\n }\n } while (parent && !axe.utils.matchesSelector(parent, target) && parent !== document.documentElement);\n\n if (!parent) {\n return null;\n }\n\n if (!axe.utils.matchesSelector(parent, target)) {\n return null;\n }\n\n return parent;\n };\n\n dom.getComposedParent = function getComposedParent(element) {\n if (element.assignedSlot) {\n return getComposedParent(element.assignedSlot);\n } else if (element.parentNode) {\n var parentNode = element.parentNode;\n\n if (parentNode.nodeType === 1) {\n return parentNode;\n } else if (parentNode.host) {\n return parentNode.host;\n }\n }\n\n return null;\n };\n\n dom.getElementByReference = function (node, attr) {\n var fragment = node.getAttribute(attr);\n\n if (!fragment) {\n return null;\n }\n\n if (fragment.charAt(0) === '#') {\n fragment = decodeURIComponent(fragment.substring(1));\n } else if (fragment.substr(0, 2) === '/#') {\n fragment = decodeURIComponent(fragment.substring(2));\n }\n\n var candidate = document.getElementById(fragment);\n\n if (candidate) {\n return candidate;\n }\n\n candidate = document.getElementsByName(fragment);\n\n if (candidate.length) {\n return candidate[0];\n }\n\n return null;\n };\n\n dom.getElementCoordinates = function (element) {\n 'use strict';\n\n var scrollOffset = dom.getScrollOffset(document),\n xOffset = scrollOffset.left,\n yOffset = scrollOffset.top,\n coords = element.getBoundingClientRect();\n return {\n top: coords.top + yOffset,\n right: coords.right + xOffset,\n bottom: coords.bottom + yOffset,\n left: coords.left + xOffset,\n width: coords.right - coords.left,\n height: coords.bottom - coords.top\n };\n };\n\n var gridSize = 200;\n\n function isStackingContext(vNode, parentVNode) {\n var position = vNode.getComputedStylePropertyValue('position');\n var zIndex = vNode.getComputedStylePropertyValue('z-index');\n\n if (position === 'fixed' || position === 'sticky') {\n return true;\n }\n\n if (zIndex !== 'auto' && position !== 'static') {\n return true;\n }\n\n if (vNode.getComputedStylePropertyValue('opacity') !== '1') {\n return true;\n }\n\n var transform = vNode.getComputedStylePropertyValue('-webkit-transform') || vNode.getComputedStylePropertyValue('-ms-transform') || vNode.getComputedStylePropertyValue('transform') || 'none';\n\n if (transform !== 'none') {\n return true;\n }\n\n var mixBlendMode = vNode.getComputedStylePropertyValue('mix-blend-mode');\n\n if (mixBlendMode && mixBlendMode !== 'normal') {\n return true;\n }\n\n var filter = vNode.getComputedStylePropertyValue('filter');\n\n if (filter && filter !== 'none') {\n return true;\n }\n\n var perspective = vNode.getComputedStylePropertyValue('perspective');\n\n if (perspective && perspective !== 'none') {\n return true;\n }\n\n var clipPath = vNode.getComputedStylePropertyValue('clip-path');\n\n if (clipPath && clipPath !== 'none') {\n return true;\n }\n\n var mask = vNode.getComputedStylePropertyValue('-webkit-mask') || vNode.getComputedStylePropertyValue('mask') || 'none';\n\n if (mask !== 'none') {\n return true;\n }\n\n var maskImage = vNode.getComputedStylePropertyValue('-webkit-mask-image') || vNode.getComputedStylePropertyValue('mask-image') || 'none';\n\n if (maskImage !== 'none') {\n return true;\n }\n\n var maskBorder = vNode.getComputedStylePropertyValue('-webkit-mask-border') || vNode.getComputedStylePropertyValue('mask-border') || 'none';\n\n if (maskBorder !== 'none') {\n return true;\n }\n\n if (vNode.getComputedStylePropertyValue('isolation') === 'isolate') {\n return true;\n }\n\n var willChange = vNode.getComputedStylePropertyValue('will-change');\n\n if (willChange === 'transform' || willChange === 'opacity') {\n return true;\n }\n\n if (vNode.getComputedStylePropertyValue('-webkit-overflow-scrolling') === 'touch') {\n return true;\n }\n\n var contain = vNode.getComputedStylePropertyValue('contain');\n\n if (['layout', 'paint', 'strict', 'content'].includes(contain)) {\n return true;\n }\n\n if (zIndex !== 'auto' && parentVNode) {\n var parentDsiplay = parentVNode.getComputedStylePropertyValue('display');\n\n if (['flex', 'inline-flex', 'inline flex', 'grid', 'inline-grid', 'inline grid'].includes(parentDsiplay)) {\n return true;\n }\n }\n\n return false;\n }\n\n function isFloated(vNode) {\n if (!vNode) {\n return false;\n }\n\n if (vNode._isFloated !== undefined) {\n return vNode._isFloated;\n }\n\n var floatStyle = vNode.getComputedStylePropertyValue('float');\n\n if (floatStyle !== 'none') {\n vNode._isFloated = true;\n return true;\n }\n\n var floated = isFloated(vNode.parent);\n vNode._isFloated = floated;\n return floated;\n }\n\n function getPositionOrder(vNode) {\n if (vNode.getComputedStylePropertyValue('position') === 'static') {\n if (vNode.getComputedStylePropertyValue('display').indexOf('inline') !== -1) {\n return 2;\n }\n\n if (isFloated(vNode)) {\n return 1;\n }\n\n return 0;\n }\n\n return 3;\n }\n\n function visuallySort(a, b) {\n for (var i = 0; i < a._stackingOrder.length; i++) {\n if (typeof b._stackingOrder[i] === 'undefined') {\n return -1;\n }\n\n if (b._stackingOrder[i] > a._stackingOrder[i]) {\n return 1;\n }\n\n if (b._stackingOrder[i] < a._stackingOrder[i]) {\n return -1;\n }\n }\n\n var aNode = a.actualNode;\n var bNode = b.actualNode;\n\n if (aNode.getRootNode && aNode.getRootNode() !== bNode.getRootNode()) {\n var boundaries = [];\n\n while (aNode) {\n boundaries.push({\n root: aNode.getRootNode(),\n node: aNode\n });\n aNode = aNode.getRootNode().host;\n }\n\n while (bNode && !boundaries.find(function (boundary) {\n return boundary.root === bNode.getRootNode();\n })) {\n bNode = bNode.getRootNode().host;\n }\n\n aNode = boundaries.find(function (boundary) {\n return boundary.root === bNode.getRootNode();\n }).node;\n\n if (aNode === bNode) {\n return a.actualNode.getRootNode() !== aNode.getRootNode() ? -1 : 1;\n }\n }\n\n var _window$Node = window.Node,\n DOCUMENT_POSITION_FOLLOWING = _window$Node.DOCUMENT_POSITION_FOLLOWING,\n DOCUMENT_POSITION_CONTAINS = _window$Node.DOCUMENT_POSITION_CONTAINS,\n DOCUMENT_POSITION_CONTAINED_BY = _window$Node.DOCUMENT_POSITION_CONTAINED_BY;\n var docPosition = aNode.compareDocumentPosition(bNode);\n var DOMOrder = docPosition & DOCUMENT_POSITION_FOLLOWING ? 1 : -1;\n var isDescendant = docPosition & DOCUMENT_POSITION_CONTAINS || docPosition & DOCUMENT_POSITION_CONTAINED_BY;\n var aPosition = getPositionOrder(a);\n var bPosition = getPositionOrder(b);\n\n if (aPosition === bPosition || isDescendant) {\n return DOMOrder;\n }\n\n return bPosition - aPosition;\n }\n\n function getStackingOrder(vNode, parentVNode) {\n var stackingOrder = parentVNode._stackingOrder.slice();\n\n var zIndex = vNode.getComputedStylePropertyValue('z-index');\n\n if (zIndex !== 'auto') {\n stackingOrder[stackingOrder.length - 1] = parseInt(zIndex);\n }\n\n if (isStackingContext(vNode, parentVNode)) {\n stackingOrder.push(0);\n }\n\n return stackingOrder;\n }\n\n function findScrollRegionParent(vNode, parentVNode) {\n var scrollRegionParent = null;\n var checkedNodes = [vNode];\n\n while (parentVNode) {\n if (parentVNode._scrollRegionParent) {\n scrollRegionParent = parentVNode._scrollRegionParent;\n break;\n }\n\n if (axe.utils.getScroll(parentVNode.actualNode)) {\n scrollRegionParent = parentVNode;\n break;\n }\n\n checkedNodes.push(parentVNode);\n parentVNode = axe.utils.getNodeFromTree(parentVNode.actualNode.parentElement || parentVNode.actualNode.parentNode);\n }\n\n checkedNodes.forEach(function (vNode) {\n return vNode._scrollRegionParent = scrollRegionParent;\n });\n return scrollRegionParent;\n }\n\n function addNodeToGrid(grid, vNode) {\n vNode._grid = grid;\n vNode.clientRects.forEach(function (rect) {\n var x = rect.left;\n var y = rect.top;\n var startRow = y / gridSize | 0;\n var startCol = x / gridSize | 0;\n var endRow = (y + rect.height) / gridSize | 0;\n var endCol = (x + rect.width) / gridSize | 0;\n\n for (var row = startRow; row <= endRow; row++) {\n grid.cells[row] = grid.cells[row] || [];\n\n for (var col = startCol; col <= endCol; col++) {\n grid.cells[row][col] = grid.cells[row][col] || [];\n\n if (!grid.cells[row][col].includes(vNode)) {\n grid.cells[row][col].push(vNode);\n }\n }\n }\n });\n }\n\n function createGrid() {\n var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;\n var rootGrid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: null,\n cells: []\n };\n var parentVNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!parentVNode) {\n var vNode = axe.utils.getNodeFromTree(document.documentElement);\n\n if (!vNode) {\n vNode = new VirtualNode(document.documentElement);\n }\n\n vNode._stackingOrder = [0];\n addNodeToGrid(rootGrid, vNode);\n\n if (axe.utils.getScroll(vNode.actualNode)) {\n var subGrid = {\n container: vNode,\n cells: []\n };\n vNode._subGrid = subGrid;\n }\n }\n\n var treeWalker = document.createTreeWalker(root, window.NodeFilter.SHOW_ELEMENT, null, false);\n var node = parentVNode ? treeWalker.nextNode() : treeWalker.currentNode;\n\n while (node) {\n var _vNode = axe.utils.getNodeFromTree(node);\n\n if (node.parentElement) {\n parentVNode = axe.utils.getNodeFromTree(node.parentElement);\n } else if (node.parentNode && axe.utils.getNodeFromTree(node.parentNode)) {\n parentVNode = axe.utils.getNodeFromTree(node.parentNode);\n }\n\n if (!_vNode) {\n _vNode = new VirtualNode(node, parentVNode);\n }\n\n _vNode._stackingOrder = getStackingOrder(_vNode, parentVNode);\n var scrollRegionParent = findScrollRegionParent(_vNode, parentVNode);\n var grid = scrollRegionParent ? scrollRegionParent._subGrid : rootGrid;\n\n if (axe.utils.getScroll(_vNode.actualNode)) {\n var _subGrid = {\n container: _vNode,\n cells: []\n };\n _vNode._subGrid = _subGrid;\n }\n\n var rect = _vNode.boundingClientRect;\n\n if (rect.width !== 0 && rect.height !== 0 && dom.isVisible(node)) {\n addNodeToGrid(grid, _vNode);\n }\n\n if (axe.utils.isShadowRoot(node)) {\n createGrid(node.shadowRoot, grid, _vNode);\n }\n\n node = treeWalker.nextNode();\n }\n }\n\n function getRectStack(grid, rect) {\n var recursed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var x = rect.left + rect.width / 2;\n var y = rect.top + rect.height / 2;\n var row = y / gridSize | 0;\n var col = x / gridSize | 0;\n var stack = grid.cells[row][col].filter(function (gridCellNode) {\n return gridCellNode.clientRects.find(function (clientRect) {\n var rectX = clientRect.left;\n var rectY = clientRect.top;\n return x <= rectX + clientRect.width && x >= rectX && y <= rectY + clientRect.height && y >= rectY;\n });\n });\n var gridContainer = grid.container;\n\n if (gridContainer) {\n stack = getRectStack(gridContainer._grid, gridContainer.boundingClientRect, true).concat(stack);\n }\n\n if (!recursed) {\n stack = stack.sort(visuallySort).map(function (vNode) {\n return vNode.actualNode;\n }).concat(document.documentElement).filter(function (node, index, array) {\n return array.indexOf(node) === index;\n });\n }\n\n return stack;\n }\n\n dom.getElementStack = function (node) {\n if (!axe._cache.get('gridCreated')) {\n createGrid();\n\n axe._cache.set('gridCreated', true);\n }\n\n var vNode = axe.utils.getNodeFromTree(node);\n var grid = vNode._grid;\n\n if (!grid) {\n return [];\n }\n\n return getRectStack(grid, vNode.boundingClientRect);\n };\n\n dom.getTextElementStack = function (node) {\n if (!axe._cache.get('gridCreated')) {\n createGrid();\n\n axe._cache.set('gridCreated', true);\n }\n\n var vNode = axe.utils.getNodeFromTree(node);\n var grid = vNode._grid;\n\n if (!grid) {\n return [];\n }\n\n var clientRects = [];\n Array.from(node.childNodes).forEach(function (elm) {\n if (elm.nodeType === 3 && axe.commons.text.sanitize(elm.textContent) !== '') {\n var range = document.createRange();\n range.selectNodeContents(elm);\n var rects = range.getClientRects();\n\n for (var i = 0; i < rects.length; i++) {\n var rect = rects[i];\n\n if (rect.width >= 1 && rect.height >= 1) {\n clientRects.push(rect);\n }\n }\n }\n });\n return clientRects.map(function (rect) {\n return getRectStack(grid, rect);\n });\n };\n\n dom.getRootNode = axe.utils.getRootNode;\n\n dom.getScrollOffset = function (element) {\n 'use strict';\n\n if (!element.nodeType && element.document) {\n element = element.document;\n }\n\n if (element.nodeType === 9) {\n var docElement = element.documentElement,\n body = element.body;\n return {\n left: docElement && docElement.scrollLeft || body && body.scrollLeft || 0,\n top: docElement && docElement.scrollTop || body && body.scrollTop || 0\n };\n }\n\n return {\n left: element.scrollLeft,\n top: element.scrollTop\n };\n };\n\n dom.getTabbableElements = function getTabbableElements(virtualNode) {\n var nodeAndDescendents = axe.utils.querySelectorAll(virtualNode, '*');\n var tabbableElements = nodeAndDescendents.filter(function (vNode) {\n var isFocusable = vNode.isFocusable;\n var tabIndex = vNode.actualNode.getAttribute('tabindex');\n tabIndex = tabIndex && !isNaN(parseInt(tabIndex, 10)) ? parseInt(tabIndex) : null;\n return tabIndex ? isFocusable && tabIndex >= 0 : isFocusable;\n });\n return tabbableElements;\n };\n\n dom.getViewportSize = function (win) {\n 'use strict';\n\n var body,\n doc = win.document,\n docElement = doc.documentElement;\n\n if (win.innerWidth) {\n return {\n width: win.innerWidth,\n height: win.innerHeight\n };\n }\n\n if (docElement) {\n return {\n width: docElement.clientWidth,\n height: docElement.clientHeight\n };\n }\n\n body = doc.body;\n return {\n width: body.clientWidth,\n height: body.clientHeight\n };\n };\n\n var hiddenTextElms = ['HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT'];\n\n function hasChildTextNodes(elm) {\n if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) {\n return elm.children.some(function (_ref40) {\n var actualNode = _ref40.actualNode;\n return actualNode.nodeType === 3 && actualNode.nodeValue.trim();\n });\n }\n }\n\n dom.hasContentVirtual = function (elm, noRecursion, ignoreAria) {\n return hasChildTextNodes(elm) || dom.isVisualContent(elm.actualNode) || !ignoreAria && !!aria.labelVirtual(elm) || !noRecursion && elm.children.some(function (child) {\n return child.actualNode.nodeType === 1 && dom.hasContentVirtual(child);\n });\n };\n\n dom.hasContent = function hasContent(elm, noRecursion, ignoreAria) {\n elm = axe.utils.getNodeFromTree(elm);\n return dom.hasContentVirtual(elm, noRecursion, ignoreAria);\n };\n\n dom.idrefs = function (node, attr) {\n 'use strict';\n\n var index,\n length,\n doc = dom.getRootNode(node),\n result = [],\n idrefs = node.getAttribute(attr);\n\n if (idrefs) {\n idrefs = axe.utils.tokenList(idrefs);\n\n for (index = 0, length = idrefs.length; index < length; index++) {\n result.push(doc.getElementById(idrefs[index]));\n }\n }\n\n return result;\n };\n\n function focusDisabled(el) {\n return el.disabled || el.nodeName.toUpperCase() !== 'AREA' && dom.isHiddenWithCSS(el);\n }\n\n dom.isFocusable = function (el) {\n 'use strict';\n\n if (focusDisabled(el)) {\n return false;\n } else if (dom.isNativelyFocusable(el)) {\n return true;\n }\n\n var tabindex = el.getAttribute('tabindex');\n\n if (tabindex && !isNaN(parseInt(tabindex, 10))) {\n return true;\n }\n\n return false;\n };\n\n dom.isNativelyFocusable = function (el) {\n 'use strict';\n\n if (!el || focusDisabled(el)) {\n return false;\n }\n\n switch (el.nodeName.toUpperCase()) {\n case 'A':\n case 'AREA':\n if (el.href) {\n return true;\n }\n\n break;\n\n case 'INPUT':\n return el.type !== 'hidden';\n\n case 'TEXTAREA':\n case 'SELECT':\n case 'SUMMARY':\n case 'BUTTON':\n return true;\n\n case 'DETAILS':\n return !el.querySelector('summary');\n }\n\n return false;\n };\n\n dom.insertedIntoFocusOrder = function (el) {\n var tabIndex = parseInt(el.getAttribute('tabindex'), 10);\n return tabIndex > -1 && dom.isFocusable(el) && !dom.isNativelyFocusable(el);\n };\n\n dom.isHiddenWithCSS = function isHiddenWithCSS(el, descendentVisibilityValue) {\n var vNode = axe.utils.getNodeFromTree(el);\n\n if (!vNode) {\n return _isHiddenWithCSS(el, descendentVisibilityValue);\n }\n\n if (vNode._isHiddenWithCSS === void 0) {\n vNode._isHiddenWithCSS = _isHiddenWithCSS(el, descendentVisibilityValue);\n }\n\n return vNode._isHiddenWithCSS;\n };\n\n function _isHiddenWithCSS(el, descendentVisibilityValue) {\n if (el.nodeType === 9) {\n return false;\n }\n\n if (el.nodeType === 11) {\n el = el.host;\n }\n\n if (['STYLE', 'SCRIPT'].includes(el.nodeName.toUpperCase())) {\n return false;\n }\n\n var style = window.getComputedStyle(el, null);\n\n if (!style) {\n throw new Error('Style does not exist for the given element.');\n }\n\n var displayValue = style.getPropertyValue('display');\n\n if (displayValue === 'none') {\n return true;\n }\n\n var HIDDEN_VISIBILITY_VALUES = ['hidden', 'collapse'];\n var visibilityValue = style.getPropertyValue('visibility');\n\n if (HIDDEN_VISIBILITY_VALUES.includes(visibilityValue) && !descendentVisibilityValue) {\n return true;\n }\n\n if (HIDDEN_VISIBILITY_VALUES.includes(visibilityValue) && descendentVisibilityValue && HIDDEN_VISIBILITY_VALUES.includes(descendentVisibilityValue)) {\n return true;\n }\n\n var parent = dom.getComposedParent(el);\n\n if (parent && !HIDDEN_VISIBILITY_VALUES.includes(visibilityValue)) {\n return dom.isHiddenWithCSS(parent, visibilityValue);\n }\n\n return false;\n }\n\n dom.isHTML5 = function (doc) {\n var node = doc.doctype;\n\n if (node === null) {\n return false;\n }\n\n return node.name === 'html' && !node.publicId && !node.systemId;\n };\n\n function walkDomNode(node, functor) {\n if (functor(node.actualNode) !== false) {\n node.children.forEach(function (child) {\n return walkDomNode(child, functor);\n });\n }\n }\n\n var blockLike = ['block', 'list-item', 'table', 'flex', 'grid', 'inline-block'];\n\n function isBlock(elm) {\n var display = window.getComputedStyle(elm).getPropertyValue('display');\n return blockLike.includes(display) || display.substr(0, 6) === 'table-';\n }\n\n function getBlockParent(node) {\n var parentBlock = dom.getComposedParent(node);\n\n while (parentBlock && !isBlock(parentBlock)) {\n parentBlock = dom.getComposedParent(parentBlock);\n }\n\n return axe.utils.getNodeFromTree(parentBlock);\n }\n\n dom.isInTextBlock = function isInTextBlock(node) {\n if (isBlock(node)) {\n return false;\n }\n\n var virtualParent = getBlockParent(node);\n var parentText = '';\n var linkText = '';\n var inBrBlock = 0;\n walkDomNode(virtualParent, function (currNode) {\n if (inBrBlock === 2) {\n return false;\n }\n\n if (currNode.nodeType === 3) {\n parentText += currNode.nodeValue;\n }\n\n if (currNode.nodeType !== 1) {\n return;\n }\n\n var nodeName = (currNode.nodeName || '').toUpperCase();\n\n if (['BR', 'HR'].includes(nodeName)) {\n if (inBrBlock === 0) {\n parentText = '';\n linkText = '';\n } else {\n inBrBlock = 2;\n }\n } else if (currNode.style.display === 'none' || currNode.style.overflow === 'hidden' || !['', null, 'none'].includes(currNode.style['float']) || !['', null, 'relative'].includes(currNode.style.position)) {\n return false;\n } else if (nodeName === 'A' && currNode.href || (currNode.getAttribute('role') || '').toLowerCase() === 'link') {\n if (currNode === node) {\n inBrBlock = 1;\n }\n\n linkText += currNode.textContent;\n return false;\n }\n });\n parentText = axe.commons.text.sanitize(parentText);\n linkText = axe.commons.text.sanitize(linkText);\n return parentText.length > linkText.length;\n };\n\n dom.isModalOpen = function isModalOpen(options) {\n options = options || {};\n var modalPercent = options.modalPercent || .75;\n\n if (axe._cache.get('isModalOpen')) {\n return axe._cache.get('isModalOpen');\n }\n\n var definiteModals = axe.utils.querySelectorAllFilter(axe._tree[0], 'dialog, [role=dialog], [aria-modal=true]', function (vNode) {\n return dom.isVisible(vNode.actualNode);\n });\n\n if (definiteModals.length) {\n axe._cache.set('isModalOpen', true);\n\n return true;\n }\n\n var viewport = dom.getViewportSize(window);\n var percentWidth = viewport.width * modalPercent;\n var percentHeight = viewport.height * modalPercent;\n var x = (viewport.width - percentWidth) / 2;\n var y = (viewport.height - percentHeight) / 2;\n var points = [{\n x: x,\n y: y\n }, {\n x: viewport.width - x,\n y: y\n }, {\n x: viewport.width / 2,\n y: viewport.height / 2\n }, {\n x: x,\n y: viewport.height - y\n }, {\n x: viewport.width - x,\n y: viewport.height - y\n }];\n var stacks = points.map(function (point) {\n return Array.from(document.elementsFromPoint(point.x, point.y));\n });\n\n var _loop3 = function _loop3(i) {\n var modalElement = stacks[i].find(function (elm) {\n var style = window.getComputedStyle(elm);\n return parseInt(style.width, 10) >= percentWidth && parseInt(style.height, 10) >= percentHeight && style.getPropertyValue('pointer-events') !== 'none' && (style.position === 'absolute' || style.position === 'fixed');\n });\n\n if (modalElement && stacks.every(function (stack) {\n return stack.includes(modalElement);\n })) {\n axe._cache.set('isModalOpen', true);\n\n return {\n v: true\n };\n }\n };\n\n for (var i = 0; i < stacks.length; i++) {\n var _ret3 = _loop3(i);\n\n if (_typeof(_ret3) === 'object') {\n return _ret3.v;\n }\n }\n\n axe._cache.set('isModalOpen', undefined);\n\n return undefined;\n };\n\n dom.isNode = function (element) {\n 'use strict';\n\n return element instanceof Node;\n };\n\n function noParentScrolled(element, offset) {\n element = dom.getComposedParent(element);\n\n while (element && element.nodeName.toLowerCase() !== 'html') {\n if (element.scrollTop) {\n offset += element.scrollTop;\n\n if (offset >= 0) {\n return false;\n }\n }\n\n element = dom.getComposedParent(element);\n }\n\n return true;\n }\n\n dom.isOffscreen = function (element) {\n var leftBoundary;\n var docElement = document.documentElement;\n var styl = window.getComputedStyle(element);\n var dir = window.getComputedStyle(document.body || docElement).getPropertyValue('direction');\n var coords = dom.getElementCoordinates(element);\n\n if (coords.bottom < 0 && (noParentScrolled(element, coords.bottom) || styl.position === 'absolute')) {\n return true;\n }\n\n if (coords.left === 0 && coords.right === 0) {\n return false;\n }\n\n if (dir === 'ltr') {\n if (coords.right <= 0) {\n return true;\n }\n } else {\n leftBoundary = Math.max(docElement.scrollWidth, dom.getViewportSize(window).width);\n\n if (coords.left >= leftBoundary) {\n return true;\n }\n }\n\n return false;\n };\n\n var isInternalLinkRegex = /^\\/?#[^/!]/;\n\n dom.isSkipLink = function (element) {\n if (!isInternalLinkRegex.test(element.getAttribute('href'))) {\n return false;\n }\n\n var firstPageLink;\n\n if (typeof axe._cache.get('firstPageLink') !== 'undefined') {\n firstPageLink = axe._cache.get('firstPageLink');\n } else {\n firstPageLink = axe.utils.querySelectorAll(axe._tree, 'a:not([href^=\"#\"]):not([href^=\"/#\"]):not([href^=\"javascript\"])')[0];\n\n axe._cache.set('firstPageLink', firstPageLink || null);\n }\n\n if (!firstPageLink) {\n return true;\n }\n\n return element.compareDocumentPosition(firstPageLink.actualNode) === element.DOCUMENT_POSITION_FOLLOWING;\n };\n\n var clipRegex = /rect\\s*\\(([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px\\s*\\)/;\n var clipPathRegex = /(\\w+)\\((\\d+)/;\n\n function isClipped(style) {\n 'use strict';\n\n var matchesClip = style.getPropertyValue('clip').match(clipRegex);\n var matchesClipPath = style.getPropertyValue('clip-path').match(clipPathRegex);\n\n if (matchesClip && matchesClip.length === 5) {\n return matchesClip[3] - matchesClip[1] <= 0 && matchesClip[2] - matchesClip[4] <= 0;\n }\n\n if (matchesClipPath) {\n var type = matchesClipPath[1];\n var value = parseInt(matchesClipPath[2], 10);\n\n switch (type) {\n case 'inset':\n return value >= 50;\n\n case 'circle':\n return value === 0;\n\n default:\n }\n }\n\n return false;\n }\n\n function isAreaVisible(el, screenReader, recursed) {\n var mapEl = dom.findUp(el, 'map');\n\n if (!mapEl) {\n return false;\n }\n\n var mapElName = mapEl.getAttribute('name');\n\n if (!mapElName) {\n return false;\n }\n\n var mapElRootNode = dom.getRootNode(el);\n\n if (!mapElRootNode || mapElRootNode.nodeType !== 9) {\n return false;\n }\n\n var refs = axe.utils.querySelectorAll(axe._tree, 'img[usemap=\"#'.concat(axe.utils.escapeSelector(mapElName), '\"]'));\n\n if (!refs || !refs.length) {\n return false;\n }\n\n return refs.some(function (_ref41) {\n var actualNode = _ref41.actualNode;\n return dom.isVisible(actualNode, screenReader, recursed);\n });\n }\n\n dom.isVisible = function (el, screenReader, recursed) {\n 'use strict';\n\n var node = axe.utils.getNodeFromTree(el);\n var cacheName = '_isVisible' + (screenReader ? 'ScreenReader' : '');\n\n if (el.nodeType === 9) {\n return true;\n }\n\n if (el.nodeType === 11) {\n el = el.host;\n }\n\n if (node && typeof node[cacheName] !== 'undefined') {\n return node[cacheName];\n }\n\n var style = window.getComputedStyle(el, null);\n\n if (style === null) {\n return false;\n }\n\n var nodeName = el.nodeName.toUpperCase();\n\n if (nodeName === 'AREA') {\n return isAreaVisible(el, screenReader, recursed);\n }\n\n if (style.getPropertyValue('display') === 'none' || ['STYLE', 'SCRIPT', 'NOSCRIPT', 'TEMPLATE'].includes(nodeName)) {\n return false;\n }\n\n if (screenReader && el.getAttribute('aria-hidden') === 'true') {\n return false;\n }\n\n if (!screenReader && (isClipped(style) || style.getPropertyValue('opacity') === '0' || axe.utils.getScroll(el) && parseInt(style.getPropertyValue('height')) === 0)) {\n return false;\n }\n\n if (!recursed && (style.getPropertyValue('visibility') === 'hidden' || !screenReader && axe.commons.dom.isOffscreen(el))) {\n return false;\n }\n\n var parent = el.assignedSlot ? el.assignedSlot : el.parentNode;\n var isVisible = false;\n\n if (parent) {\n isVisible = dom.isVisible(parent, screenReader, true);\n }\n\n if (node) {\n node[cacheName] = isVisible;\n }\n\n return isVisible;\n };\n\n var visualRoles = ['checkbox', 'img', 'radio', 'range', 'slider', 'spinbutton', 'textbox'];\n\n dom.isVisualContent = function (element) {\n var role = element.getAttribute('role');\n\n if (role) {\n return visualRoles.indexOf(role) !== -1;\n }\n\n switch (element.nodeName.toUpperCase()) {\n case 'IMG':\n case 'IFRAME':\n case 'OBJECT':\n case 'VIDEO':\n case 'AUDIO':\n case 'CANVAS':\n case 'SVG':\n case 'MATH':\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n case 'KEYGEN':\n case 'PROGRESS':\n case 'METER':\n return true;\n\n case 'INPUT':\n return element.type !== 'hidden';\n\n default:\n return false;\n }\n };\n\n dom.shadowElementsFromPoint = function (nodeX, nodeY) {\n var root = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n var i = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n if (i > 999) {\n throw new Error('Infinite loop detected');\n }\n\n return Array.from(root.elementsFromPoint(nodeX, nodeY) || []).filter(function (nodes) {\n return dom.getRootNode(nodes) === root;\n }).reduce(function (stack, elm) {\n if (axe.utils.isShadowRoot(elm)) {\n var shadowStack = dom.shadowElementsFromPoint(nodeX, nodeY, elm.shadowRoot, i + 1);\n stack = stack.concat(shadowStack);\n\n if (stack.length && axe.commons.dom.visuallyContains(stack[0], elm)) {\n stack.push(elm);\n }\n } else {\n stack.push(elm);\n }\n\n return stack;\n }, []);\n };\n\n dom.urlPropsFromAttribute = function urlPropsFromAttribute(node, attribute) {\n if (!node.hasAttribute(attribute)) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toUpperCase();\n var parser = node;\n\n if (!['A', 'AREA'].includes(nodeName) || node.ownerSVGElement) {\n parser = document.createElement('a');\n parser.href = node.getAttribute(attribute);\n }\n\n var protocol = ['https:', 'ftps:'].includes(parser.protocol) ? parser.protocol.replace(/s:$/, ':') : parser.protocol;\n var parserPathname = /^\\//.test(parser.pathname) ? parser.pathname : '/'.concat(parser.pathname);\n\n var _getPathnameOrFilenam = getPathnameOrFilename(parserPathname),\n pathname = _getPathnameOrFilenam.pathname,\n filename = _getPathnameOrFilenam.filename;\n\n return {\n protocol: protocol,\n hostname: parser.hostname,\n port: getPort(parser.port),\n pathname: /\\/$/.test(pathname) ? pathname : ''.concat(pathname, '/'),\n search: getSearchPairs(parser.search),\n hash: getHashRoute(parser.hash),\n filename: filename\n };\n };\n\n function getPort(port) {\n var excludePorts = ['443', '80'];\n return !excludePorts.includes(port) ? port : '';\n }\n\n function getPathnameOrFilename(pathname) {\n var filename = pathname.split('/').pop();\n\n if (!filename || filename.indexOf('.') === -1) {\n return {\n pathname: pathname,\n filename: ''\n };\n }\n\n return {\n pathname: pathname.replace(filename, ''),\n filename: /index./.test(filename) ? '' : filename\n };\n }\n\n function getSearchPairs(searchStr) {\n var query = {};\n\n if (!searchStr || !searchStr.length) {\n return query;\n }\n\n var pairs = searchStr.substring(1).split('&');\n\n if (!pairs || !pairs.length) {\n return query;\n }\n\n for (var index = 0; index < pairs.length; index++) {\n var pair = pairs[index];\n\n var _pair$split = pair.split('='),\n _pair$split2 = _slicedToArray(_pair$split, 2),\n key = _pair$split2[0],\n _pair$split2$ = _pair$split2[1],\n value = _pair$split2$ === void 0 ? '' : _pair$split2$;\n\n query[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n\n return query;\n }\n\n function getHashRoute(hash) {\n if (!hash) {\n return '';\n }\n\n var hashRegex = /#!?\\/?/g;\n var hasMatch = hash.match(hashRegex);\n\n if (!hasMatch) {\n return '';\n }\n\n var _hasMatch = _slicedToArray(hasMatch, 1),\n matchedStr = _hasMatch[0];\n\n if (matchedStr === '#') {\n return '';\n }\n\n return hash;\n }\n\n function getScrollAncestor(node) {\n var vNode = axe.utils.getNodeFromTree(node);\n var ancestor = vNode.parent;\n\n while (ancestor) {\n if (axe.utils.getScroll(ancestor.actualNode)) {\n return ancestor.actualNode;\n }\n\n ancestor = ancestor.parent;\n }\n }\n\n function contains(node, parent) {\n var rectBound = node.getBoundingClientRect();\n var margin = .01;\n var rect = {\n top: rectBound.top + margin,\n bottom: rectBound.bottom - margin,\n left: rectBound.left + margin,\n right: rectBound.right - margin\n };\n var parentRect = parent.getBoundingClientRect();\n var parentTop = parentRect.top;\n var parentLeft = parentRect.left;\n var parentScrollArea = {\n top: parentTop - parent.scrollTop,\n bottom: parentTop - parent.scrollTop + parent.scrollHeight,\n left: parentLeft - parent.scrollLeft,\n right: parentLeft - parent.scrollLeft + parent.scrollWidth\n };\n var style = window.getComputedStyle(parent);\n\n if (style.getPropertyValue('display') === 'inline') {\n return true;\n }\n\n if (rect.left < parentScrollArea.left && rect.left < parentRect.left || rect.top < parentScrollArea.top && rect.top < parentRect.top || rect.right > parentScrollArea.right && rect.right > parentRect.right || rect.bottom > parentScrollArea.bottom && rect.bottom > parentRect.bottom) {\n return false;\n }\n\n if (rect.right > parentRect.right || rect.bottom > parentRect.bottom) {\n return style.overflow === 'scroll' || style.overflow === 'auto' || style.overflow === 'hidden' || parent instanceof HTMLBodyElement || parent instanceof HTMLHtmlElement;\n }\n\n return true;\n }\n\n dom.visuallyContains = function visuallyContains(node, parent) {\n var parentScrollAncestor = getScrollAncestor(parent);\n\n do {\n var nextScrollAncestor = getScrollAncestor(node);\n\n if (nextScrollAncestor === parentScrollAncestor || nextScrollAncestor === parent) {\n return contains(node, parent);\n }\n\n node = nextScrollAncestor;\n } while (node);\n\n return false;\n };\n\n dom.visuallyOverlaps = function (rect, parent) {\n var parentRect = parent.getBoundingClientRect();\n var parentTop = parentRect.top;\n var parentLeft = parentRect.left;\n var parentScrollArea = {\n top: parentTop - parent.scrollTop,\n bottom: parentTop - parent.scrollTop + parent.scrollHeight,\n left: parentLeft - parent.scrollLeft,\n right: parentLeft - parent.scrollLeft + parent.scrollWidth\n };\n\n if (rect.left > parentScrollArea.right && rect.left > parentRect.right || rect.top > parentScrollArea.bottom && rect.top > parentRect.bottom || rect.right < parentScrollArea.left && rect.right < parentRect.left || rect.bottom < parentScrollArea.top && rect.bottom < parentRect.top) {\n return false;\n }\n\n var style = window.getComputedStyle(parent);\n\n if (rect.left > parentRect.right || rect.top > parentRect.bottom) {\n return style.overflow === 'scroll' || style.overflow === 'auto' || parent instanceof HTMLBodyElement || parent instanceof HTMLHtmlElement;\n }\n\n return true;\n };\n\n forms.isAriaCombobox = function (node) {\n var role = axe.commons.aria.getRole(node, {\n noImplicit: true\n });\n return role === 'combobox';\n };\n\n forms.isAriaListbox = function (node) {\n var role = axe.commons.aria.getRole(node, {\n noImplicit: true\n });\n return role === 'listbox';\n };\n\n var rangeRoles = ['progressbar', 'scrollbar', 'slider', 'spinbutton'];\n\n forms.isAriaRange = function (node) {\n var role = axe.commons.aria.getRole(node, {\n noImplicit: true\n });\n return rangeRoles.includes(role);\n };\n\n forms.isAriaTextbox = function (node) {\n var role = axe.commons.aria.getRole(node, {\n noImplicit: true\n });\n return role === 'textbox';\n };\n\n forms.isNativeSelect = function (node) {\n var nodeName = node.nodeName.toUpperCase();\n return nodeName === 'SELECT';\n };\n\n var nonTextInputTypes = ['button', 'checkbox', 'color', 'file', 'hidden', 'image', 'password', 'radio', 'reset', 'submit'];\n\n forms.isNativeTextbox = function (node) {\n var nodeName = node.nodeName.toUpperCase();\n return nodeName === 'TEXTAREA' || nodeName === 'INPUT' && !nonTextInputTypes.includes(node.type);\n };\n\n matches.attributes = function matchesAttributes(vNode, matcher) {\n if (!(vNode instanceof axe.AbstractVirtualNode)) {\n vNode = axe.utils.getNodeFromTree(vNode);\n }\n\n return matches.fromFunction(function (attrName) {\n return vNode.attr(attrName);\n }, matcher);\n };\n\n matches.condition = function (arg, condition) {\n return !!condition(arg);\n };\n\n var matchers = ['nodeName', 'attributes', 'properties', 'condition'];\n\n matches.fromDefinition = function matchFromDefinition(vNode, definition) {\n if (!(vNode instanceof axe.AbstractVirtualNode)) {\n vNode = axe.utils.getNodeFromTree(vNode);\n }\n\n if (Array.isArray(definition)) {\n return definition.some(function (definitionItem) {\n return matches(vNode, definitionItem);\n });\n }\n\n if (typeof definition === 'string') {\n return axe.utils.matches(vNode, definition);\n }\n\n return Object.keys(definition).every(function (matcherName) {\n if (!matchers.includes(matcherName)) {\n throw new Error('Unknown matcher type \"'.concat(matcherName, '\"'));\n }\n\n var matchMethod = matches[matcherName];\n var matcher = definition[matcherName];\n return matchMethod(vNode, matcher);\n });\n };\n\n matches.fromFunction = function matchFromFunction(getValue, matcher) {\n var matcherType = _typeof(matcher);\n\n if (matcherType !== 'object' || Array.isArray(matcher) || matcher instanceof RegExp) {\n throw new Error('Expect matcher to be an object');\n }\n\n return Object.keys(matcher).every(function (propName) {\n return matches.fromPrimative(getValue(propName), matcher[propName]);\n });\n };\n\n matches.fromPrimative = function matchFromPrimative(someString, matcher) {\n var matcherType = _typeof(matcher);\n\n if (Array.isArray(matcher) && typeof someString !== 'undefined') {\n return matcher.includes(someString);\n }\n\n if (matcherType === 'function') {\n return !!matcher(someString);\n }\n\n if (matcher instanceof RegExp) {\n return matcher.test(someString);\n }\n\n return matcher === someString;\n };\n\n matches.nodeName = function matchNodeName(vNode, matcher) {\n if (!(vNode instanceof axe.AbstractVirtualNode)) {\n vNode = axe.utils.getNodeFromTree(vNode);\n }\n\n return matches.fromPrimative(vNode.props.nodeName, matcher);\n };\n\n matches.properties = function matchesProperties(vNode, matcher) {\n if (!(vNode instanceof axe.AbstractVirtualNode)) {\n vNode = axe.utils.getNodeFromTree(vNode);\n }\n\n return matches.fromFunction(function (propName) {\n return vNode.props[propName];\n }, matcher);\n };\n\n table.getAllCells = function (tableElm) {\n var rowIndex, cellIndex, rowLength, cellLength;\n var cells = [];\n\n for (rowIndex = 0, rowLength = tableElm.rows.length; rowIndex < rowLength; rowIndex++) {\n for (cellIndex = 0, cellLength = tableElm.rows[rowIndex].cells.length; cellIndex < cellLength; cellIndex++) {\n cells.push(tableElm.rows[rowIndex].cells[cellIndex]);\n }\n }\n\n return cells;\n };\n\n table.getCellPosition = axe.utils.memoize(function (cell, tableGrid) {\n var rowIndex, index;\n\n if (!tableGrid) {\n tableGrid = table.toGrid(dom.findUp(cell, 'table'));\n }\n\n for (rowIndex = 0; rowIndex < tableGrid.length; rowIndex++) {\n if (tableGrid[rowIndex]) {\n index = tableGrid[rowIndex].indexOf(cell);\n\n if (index !== -1) {\n return {\n x: index,\n y: rowIndex\n };\n }\n }\n }\n });\n\n function traverseForHeaders(headerType, position, tableGrid) {\n var property = headerType === 'row' ? '_rowHeaders' : '_colHeaders';\n var predicate = headerType === 'row' ? table.isRowHeader : table.isColumnHeader;\n var rowEnd = headerType === 'row' ? position.y : 0;\n var colEnd = headerType === 'row' ? 0 : position.x;\n var headers;\n var cells = [];\n\n for (var row = position.y; row >= rowEnd && !headers; row--) {\n for (var col = position.x; col >= colEnd; col--) {\n var cell = tableGrid[row] ? tableGrid[row][col] : undefined;\n\n if (!cell) {\n continue;\n }\n\n var vNode = axe.utils.getNodeFromTree(cell);\n\n if (vNode[property]) {\n headers = vNode[property];\n break;\n }\n\n cells.push(cell);\n }\n }\n\n headers = (headers || []).concat(cells.filter(predicate));\n cells.forEach(function (tableCell) {\n var vNode = axe.utils.getNodeFromTree(tableCell);\n vNode[property] = headers;\n });\n return headers;\n }\n\n table.getHeaders = function (cell, tableGrid) {\n if (cell.getAttribute('headers')) {\n var headers = commons.dom.idrefs(cell, 'headers');\n\n if (headers.filter(function (header) {\n return header;\n }).length) {\n return headers;\n }\n }\n\n if (!tableGrid) {\n tableGrid = commons.table.toGrid(commons.dom.findUp(cell, 'table'));\n }\n\n var position = commons.table.getCellPosition(cell, tableGrid);\n var rowHeaders = traverseForHeaders('row', position, tableGrid);\n var colHeaders = traverseForHeaders('col', position, tableGrid);\n return [].concat(rowHeaders, colHeaders).reverse();\n };\n\n table.getScope = function (cell) {\n var scope = cell.getAttribute('scope');\n var role = cell.getAttribute('role');\n\n if (cell instanceof Element === false || ['TD', 'TH'].indexOf(cell.nodeName.toUpperCase()) === -1) {\n throw new TypeError('Expected TD or TH element');\n }\n\n if (role === 'columnheader') {\n return 'col';\n } else if (role === 'rowheader') {\n return 'row';\n } else if (scope === 'col' || scope === 'row') {\n return scope;\n } else if (cell.nodeName.toUpperCase() !== 'TH') {\n return false;\n }\n\n var tableGrid = table.toGrid(dom.findUp(cell, 'table'));\n var pos = table.getCellPosition(cell, tableGrid);\n var headerRow = tableGrid[pos.y].reduce(function (headerRow, cell) {\n return headerRow && cell.nodeName.toUpperCase() === 'TH';\n }, true);\n\n if (headerRow) {\n return 'col';\n }\n\n var headerCol = tableGrid.map(function (col) {\n return col[pos.x];\n }).reduce(function (headerCol, cell) {\n return headerCol && cell && cell.nodeName.toUpperCase() === 'TH';\n }, true);\n\n if (headerCol) {\n return 'row';\n }\n\n return 'auto';\n };\n\n table.isColumnHeader = function (element) {\n return ['col', 'auto'].indexOf(table.getScope(element)) !== -1;\n };\n\n table.isDataCell = function (cell) {\n if (!cell.children.length && !cell.textContent.trim()) {\n return false;\n }\n\n var role = cell.getAttribute('role');\n\n if (axe.commons.aria.isValidRole(role)) {\n return ['cell', 'gridcell'].includes(role);\n } else {\n return cell.nodeName.toUpperCase() === 'TD';\n }\n };\n\n table.isDataTable = function (node) {\n var role = (node.getAttribute('role') || '').toLowerCase();\n\n if ((role === 'presentation' || role === 'none') && !dom.isFocusable(node)) {\n return false;\n }\n\n if (node.getAttribute('contenteditable') === 'true' || dom.findUp(node, '[contenteditable=\"true\"]')) {\n return true;\n }\n\n if (role === 'grid' || role === 'treegrid' || role === 'table') {\n return true;\n }\n\n if (commons.aria.getRoleType(role) === 'landmark') {\n return true;\n }\n\n if (node.getAttribute('datatable') === '0') {\n return false;\n }\n\n if (node.getAttribute('summary')) {\n return true;\n }\n\n if (node.tHead || node.tFoot || node.caption) {\n return true;\n }\n\n for (var childIndex = 0, childLength = node.children.length; childIndex < childLength; childIndex++) {\n if (node.children[childIndex].nodeName.toUpperCase() === 'COLGROUP') {\n return true;\n }\n }\n\n var cells = 0;\n var rowLength = node.rows.length;\n var row, cell;\n var hasBorder = false;\n\n for (var rowIndex = 0; rowIndex < rowLength; rowIndex++) {\n row = node.rows[rowIndex];\n\n for (var cellIndex = 0, cellLength = row.cells.length; cellIndex < cellLength; cellIndex++) {\n cell = row.cells[cellIndex];\n\n if (cell.nodeName.toUpperCase() === 'TH') {\n return true;\n }\n\n if (!hasBorder && (cell.offsetWidth !== cell.clientWidth || cell.offsetHeight !== cell.clientHeight)) {\n hasBorder = true;\n }\n\n if (cell.getAttribute('scope') || cell.getAttribute('headers') || cell.getAttribute('abbr')) {\n return true;\n }\n\n if (['columnheader', 'rowheader'].includes((cell.getAttribute('role') || '').toLowerCase())) {\n return true;\n }\n\n if (cell.children.length === 1 && cell.children[0].nodeName.toUpperCase() === 'ABBR') {\n return true;\n }\n\n cells++;\n }\n }\n\n if (node.getElementsByTagName('table').length) {\n return false;\n }\n\n if (rowLength < 2) {\n return false;\n }\n\n var sampleRow = node.rows[Math.ceil(rowLength / 2)];\n\n if (sampleRow.cells.length === 1 && sampleRow.cells[0].colSpan === 1) {\n return false;\n }\n\n if (sampleRow.cells.length >= 5) {\n return true;\n }\n\n if (hasBorder) {\n return true;\n }\n\n var bgColor, bgImage;\n\n for (rowIndex = 0; rowIndex < rowLength; rowIndex++) {\n row = node.rows[rowIndex];\n\n if (bgColor && bgColor !== window.getComputedStyle(row).getPropertyValue('background-color')) {\n return true;\n } else {\n bgColor = window.getComputedStyle(row).getPropertyValue('background-color');\n }\n\n if (bgImage && bgImage !== window.getComputedStyle(row).getPropertyValue('background-image')) {\n return true;\n } else {\n bgImage = window.getComputedStyle(row).getPropertyValue('background-image');\n }\n }\n\n if (rowLength >= 20) {\n return true;\n }\n\n if (dom.getElementCoordinates(node).width > dom.getViewportSize(window).width * .95) {\n return false;\n }\n\n if (cells < 10) {\n return false;\n }\n\n if (node.querySelector('object, embed, iframe, applet')) {\n return false;\n }\n\n return true;\n };\n\n table.isHeader = function (cell) {\n if (table.isColumnHeader(cell) || table.isRowHeader(cell)) {\n return true;\n }\n\n if (cell.getAttribute('id')) {\n var id = axe.utils.escapeSelector(cell.getAttribute('id'));\n return !!document.querySelector('[headers~=\"'.concat(id, '\"]'));\n }\n\n return false;\n };\n\n table.isRowHeader = function (cell) {\n return ['row', 'auto'].includes(table.getScope(cell));\n };\n\n table.toGrid = axe.utils.memoize(function (node) {\n var table = [];\n var rows = node.rows;\n\n for (var i = 0, rowLength = rows.length; i < rowLength; i++) {\n var cells = rows[i].cells;\n table[i] = table[i] || [];\n var columnIndex = 0;\n\n for (var j = 0, cellLength = cells.length; j < cellLength; j++) {\n for (var colSpan = 0; colSpan < cells[j].colSpan; colSpan++) {\n for (var rowSpan = 0; rowSpan < cells[j].rowSpan; rowSpan++) {\n table[i + rowSpan] = table[i + rowSpan] || [];\n\n while (table[i + rowSpan][columnIndex]) {\n columnIndex++;\n }\n\n table[i + rowSpan][columnIndex] = cells[j];\n }\n\n columnIndex++;\n }\n }\n }\n\n return table;\n });\n table.toArray = table.toGrid;\n\n (function (table) {\n var traverseTable = function traverseTable(dir, position, tableGrid, callback) {\n var result;\n var cell = tableGrid[position.y] ? tableGrid[position.y][position.x] : undefined;\n\n if (!cell) {\n return [];\n }\n\n if (typeof callback === 'function') {\n result = callback(cell, position, tableGrid);\n\n if (result === true) {\n return [cell];\n }\n }\n\n result = traverseTable(dir, {\n x: position.x + dir.x,\n y: position.y + dir.y\n }, tableGrid, callback);\n result.unshift(cell);\n return result;\n };\n\n table.traverse = function (dir, startPos, tableGrid, callback) {\n if (Array.isArray(startPos)) {\n callback = tableGrid;\n tableGrid = startPos;\n startPos = {\n x: 0,\n y: 0\n };\n }\n\n if (typeof dir === 'string') {\n switch (dir) {\n case 'left':\n dir = {\n x: -1,\n y: 0\n };\n break;\n\n case 'up':\n dir = {\n x: 0,\n y: -1\n };\n break;\n\n case 'right':\n dir = {\n x: 1,\n y: 0\n };\n break;\n\n case 'down':\n dir = {\n x: 0,\n y: 1\n };\n break;\n }\n }\n\n return traverseTable(dir, {\n x: startPos.x + dir.x,\n y: startPos.y + dir.y\n }, tableGrid, callback);\n };\n })(table);\n\n text.accessibleText = function accessibleText(element, context) {\n var virtualNode = axe.utils.getNodeFromTree(element);\n return text.accessibleTextVirtual(virtualNode, context);\n };\n\n text.accessibleTextVirtual = function accessibleTextVirtual(virtualNode) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var actualNode = virtualNode.actualNode;\n context = prepareContext(virtualNode, context);\n\n if (shouldIgnoreHidden(virtualNode, context)) {\n return '';\n }\n\n var computationSteps = [aria.arialabelledbyText, aria.arialabelText, text.nativeTextAlternative, text.formControlValue, text.subtreeText, textNodeContent, text.titleText];\n var accName = computationSteps.reduce(function (accName, step) {\n if (context.startNode === virtualNode) {\n accName = text.sanitize(accName);\n }\n\n if (accName !== '') {\n return accName;\n }\n\n return step(virtualNode, context);\n }, '');\n\n if (context.debug) {\n axe.log(accName || '{empty-value}', actualNode, context);\n }\n\n return accName;\n };\n\n function textNodeContent(_ref42) {\n var actualNode = _ref42.actualNode;\n\n if (actualNode.nodeType !== 3) {\n return '';\n }\n\n return actualNode.textContent;\n }\n\n function shouldIgnoreHidden(_ref43, context) {\n var actualNode = _ref43.actualNode;\n\n if (actualNode.nodeType !== 1 || context.includeHidden) {\n return false;\n }\n\n return !dom.isVisible(actualNode, true);\n }\n\n function prepareContext(virtualNode, context) {\n var actualNode = virtualNode.actualNode;\n\n if (!context.startNode) {\n context = _extends({\n startNode: virtualNode\n }, context);\n }\n\n if (actualNode.nodeType === 1 && context.inLabelledByContext && context.includeHidden === undefined) {\n context = _extends({\n includeHidden: !dom.isVisible(actualNode, true)\n }, context);\n }\n\n return context;\n }\n\n text.accessibleTextVirtual.alreadyProcessed = function alreadyProcessed(virtualnode, context) {\n context.processed = context.processed || [];\n\n if (context.processed.includes(virtualnode)) {\n return true;\n }\n\n context.processed.push(virtualnode);\n return false;\n };\n\n var controlValueRoles = ['textbox', 'progressbar', 'scrollbar', 'slider', 'spinbutton', 'combobox', 'listbox'];\n text.formControlValueMethods = {\n nativeTextboxValue: nativeTextboxValue,\n nativeSelectValue: nativeSelectValue,\n ariaTextboxValue: ariaTextboxValue,\n ariaListboxValue: ariaListboxValue,\n ariaComboboxValue: ariaComboboxValue,\n ariaRangeValue: ariaRangeValue\n };\n\n text.formControlValue = function formControlValue(virtualNode) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var actualNode = virtualNode.actualNode;\n var unsupported = text.unsupported.accessibleNameFromFieldValue || [];\n var role = aria.getRole(actualNode);\n\n if (context.startNode === virtualNode || !controlValueRoles.includes(role) || unsupported.includes(role)) {\n return '';\n }\n\n var valueMethods = Object.keys(text.formControlValueMethods).map(function (name) {\n return text.formControlValueMethods[name];\n });\n var valueString = valueMethods.reduce(function (accName, step) {\n return accName || step(virtualNode, context);\n }, '');\n\n if (context.debug) {\n axe.log(valueString || '{empty-value}', actualNode, context);\n }\n\n return valueString;\n };\n\n function nativeTextboxValue(node) {\n node = node.actualNode || node;\n\n if (axe.commons.forms.isNativeTextbox(node)) {\n return node.value || '';\n }\n\n return '';\n }\n\n function nativeSelectValue(node) {\n node = node.actualNode || node;\n\n if (!axe.commons.forms.isNativeSelect(node)) {\n return '';\n }\n\n return Array.from(node.options).filter(function (option) {\n return option.selected;\n }).map(function (option) {\n return option.text;\n }).join(' ') || '';\n }\n\n function ariaTextboxValue(virtualNode) {\n var actualNode = virtualNode.actualNode;\n\n if (!axe.commons.forms.isAriaTextbox(actualNode)) {\n return '';\n }\n\n if (!dom.isHiddenWithCSS(actualNode)) {\n return text.visibleVirtual(virtualNode, true);\n } else {\n return actualNode.textContent;\n }\n }\n\n function ariaListboxValue(virtualNode, context) {\n var actualNode = virtualNode.actualNode;\n\n if (!axe.commons.forms.isAriaListbox(actualNode)) {\n return '';\n }\n\n var selected = aria.getOwnedVirtual(virtualNode).filter(function (owned) {\n return aria.getRole(owned) === 'option' && owned.actualNode.getAttribute('aria-selected') === 'true';\n });\n\n if (selected.length === 0) {\n return '';\n }\n\n return axe.commons.text.accessibleTextVirtual(selected[0], context);\n }\n\n function ariaComboboxValue(virtualNode, context) {\n var actualNode = virtualNode.actualNode;\n var listbox;\n\n if (!axe.commons.forms.isAriaCombobox(actualNode)) {\n return '';\n }\n\n listbox = aria.getOwnedVirtual(virtualNode).filter(function (elm) {\n return aria.getRole(elm) === 'listbox';\n })[0];\n return listbox ? text.formControlValueMethods.ariaListboxValue(listbox, context) : '';\n }\n\n function ariaRangeValue(node) {\n node = node.actualNode || node;\n\n if (!axe.commons.forms.isAriaRange(node) || !node.hasAttribute('aria-valuenow')) {\n return '';\n }\n\n var valueNow = +node.getAttribute('aria-valuenow');\n return !isNaN(valueNow) ? String(valueNow) : '0';\n }\n\n text.isHumanInterpretable = function (str) {\n if (!str.length) {\n return 0;\n }\n\n var alphaNumericIconMap = ['x', 'i'];\n\n if (alphaNumericIconMap.includes(str)) {\n return 0;\n }\n\n var noUnicodeStr = text.removeUnicode(str, {\n emoji: true,\n nonBmp: true,\n punctuations: true\n });\n\n if (!text.sanitize(noUnicodeStr)) {\n return 0;\n }\n\n return 1;\n };\n\n text.isIconLigature = function (textVNode) {\n var differenceThreshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : .15;\n var occuranceThreshold = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;\n var nodeValue = textVNode.actualNode.nodeValue.trim();\n\n if (!text.sanitize(nodeValue) || text.hasUnicode(nodeValue, {\n emoji: true,\n nonBmp: true\n })) {\n return false;\n }\n\n if (!axe._cache.get('canvasContext')) {\n axe._cache.set('canvasContext', document.createElement('canvas').getContext('2d'));\n }\n\n var canvasContext = axe._cache.get('canvasContext');\n\n var canvas = canvasContext.canvas;\n\n if (!axe._cache.get('fonts')) {\n axe._cache.set('fonts', {});\n }\n\n var fonts = axe._cache.get('fonts');\n\n var style = window.getComputedStyle(textVNode.parent.actualNode);\n var fontFamily = style.getPropertyValue('font-family');\n\n if (!fonts[fontFamily]) {\n fonts[fontFamily] = {\n occurances: 0,\n numLigatures: 0\n };\n }\n\n var font = fonts[fontFamily];\n\n if (font.occurances >= occuranceThreshold) {\n if (font.numLigatures / font.occurances === 1) {\n return true;\n } else if (font.numLigatures === 0) {\n return false;\n }\n }\n\n font.occurances++;\n var fontSize = 30;\n var fontStyle = ''.concat(fontSize, 'px ').concat(fontFamily);\n canvasContext.font = fontStyle;\n var firstChar = nodeValue.charAt(0);\n var width = canvasContext.measureText(firstChar).width;\n\n if (width < 30) {\n var diff = 30 / width;\n width *= diff;\n fontSize *= diff;\n fontStyle = ''.concat(fontSize, 'px ').concat(fontFamily);\n }\n\n canvas.width = width;\n canvas.height = fontSize;\n canvasContext.font = fontStyle;\n canvasContext.textAlign = 'left';\n canvasContext.textBaseline = 'top';\n canvasContext.fillText(firstChar, 0, 0);\n var compareData = new Uint32Array(canvasContext.getImageData(0, 0, width, fontSize).data.buffer);\n\n if (!compareData.some(function (pixel) {\n return pixel;\n })) {\n font.numLigatures++;\n return true;\n }\n\n canvasContext.clearRect(0, 0, width, fontSize);\n canvasContext.fillText(nodeValue, 0, 0);\n var compareWith = new Uint32Array(canvasContext.getImageData(0, 0, width, fontSize).data.buffer);\n var differences = compareData.reduce(function (diff, pixel, i) {\n if (pixel === 0 && compareWith[i] === 0) {\n return diff;\n }\n\n if (pixel !== 0 && compareWith[i] !== 0) {\n return diff;\n }\n\n return ++diff;\n }, 0);\n var expectedWidth = nodeValue.split('').reduce(function (width, _char) {\n return width + canvasContext.measureText(_char).width;\n }, 0);\n var actualWidth = canvasContext.measureText(nodeValue).width;\n var pixelDifference = differences / compareData.length;\n var sizeDifference = 1 - actualWidth / expectedWidth;\n\n if (pixelDifference >= differenceThreshold && sizeDifference >= differenceThreshold) {\n font.numLigatures++;\n return true;\n }\n\n return false;\n };\n\n var autocomplete = {\n stateTerms: ['on', 'off'],\n standaloneTerms: ['name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname', 'username', 'new-password', 'current-password', 'organization-title', 'organization', 'street-address', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3', 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code', 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month', 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount', 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'url', 'photo'],\n qualifiers: ['home', 'work', 'mobile', 'fax', 'pager'],\n qualifiedTerms: ['tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-local-prefix', 'tel-local-suffix', 'tel-extension', 'email', 'impp'],\n locations: ['billing', 'shipping']\n };\n text.autocomplete = autocomplete;\n\n text.isValidAutocomplete = function isValidAutocomplete(autocomplete) {\n var _ref44 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref44$looseTyped = _ref44.looseTyped,\n looseTyped = _ref44$looseTyped === void 0 ? false : _ref44$looseTyped,\n _ref44$stateTerms = _ref44.stateTerms,\n stateTerms = _ref44$stateTerms === void 0 ? [] : _ref44$stateTerms,\n _ref44$locations = _ref44.locations,\n locations = _ref44$locations === void 0 ? [] : _ref44$locations,\n _ref44$qualifiers = _ref44.qualifiers,\n qualifiers = _ref44$qualifiers === void 0 ? [] : _ref44$qualifiers,\n _ref44$standaloneTerm = _ref44.standaloneTerms,\n standaloneTerms = _ref44$standaloneTerm === void 0 ? [] : _ref44$standaloneTerm,\n _ref44$qualifiedTerms = _ref44.qualifiedTerms,\n qualifiedTerms = _ref44$qualifiedTerms === void 0 ? [] : _ref44$qualifiedTerms;\n\n autocomplete = autocomplete.toLowerCase().trim();\n stateTerms = stateTerms.concat(text.autocomplete.stateTerms);\n\n if (stateTerms.includes(autocomplete) || autocomplete === '') {\n return true;\n }\n\n qualifiers = qualifiers.concat(text.autocomplete.qualifiers);\n locations = locations.concat(text.autocomplete.locations);\n standaloneTerms = standaloneTerms.concat(text.autocomplete.standaloneTerms);\n qualifiedTerms = qualifiedTerms.concat(text.autocomplete.qualifiedTerms);\n var autocompleteTerms = autocomplete.split(/\\s+/g);\n\n if (!looseTyped) {\n if (autocompleteTerms[0].length > 8 && autocompleteTerms[0].substr(0, 8) === 'section-') {\n autocompleteTerms.shift();\n }\n\n if (locations.includes(autocompleteTerms[0])) {\n autocompleteTerms.shift();\n }\n\n if (qualifiers.includes(autocompleteTerms[0])) {\n autocompleteTerms.shift();\n standaloneTerms = [];\n }\n\n if (autocompleteTerms.length !== 1) {\n return false;\n }\n }\n\n var purposeTerm = autocompleteTerms[autocompleteTerms.length - 1];\n return standaloneTerms.includes(purposeTerm) || qualifiedTerms.includes(purposeTerm);\n };\n\n text.labelText = function labelText(virtualNode) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var alreadyProcessed = text.accessibleTextVirtual.alreadyProcessed;\n\n if (context.inControlContext || context.inLabelledByContext || alreadyProcessed(virtualNode, context)) {\n return '';\n }\n\n if (!context.startNode) {\n context.startNode = virtualNode;\n }\n\n var labelContext = _extends({\n inControlContext: true\n }, context);\n\n var explicitLabels = getExplicitLabels(virtualNode);\n var implicitLabel = dom.findUpVirtual(virtualNode, 'label');\n var labels;\n\n if (implicitLabel) {\n labels = [].concat(_toConsumableArray(explicitLabels), [implicitLabel]);\n labels.sort(axe.utils.nodeSorter);\n } else {\n labels = explicitLabels;\n }\n\n return labels.map(function (label) {\n return text.accessibleText(label, labelContext);\n }).filter(function (text) {\n return text !== '';\n }).join(' ');\n };\n\n function getExplicitLabels(_ref45) {\n var actualNode = _ref45.actualNode;\n\n if (!actualNode.id) {\n return [];\n }\n\n return dom.findElmsInContext({\n elm: 'label',\n attr: 'for',\n value: actualNode.id,\n context: actualNode\n });\n }\n\n text.labelVirtual = function (node) {\n var ref, candidate, doc;\n candidate = aria.labelVirtual(node);\n\n if (candidate) {\n return candidate;\n }\n\n if (node.actualNode.id) {\n var id = axe.utils.escapeSelector(node.actualNode.getAttribute('id'));\n doc = axe.commons.dom.getRootNode(node.actualNode);\n ref = doc.querySelector('label[for=\"' + id + '\"]');\n candidate = ref && text.visible(ref, true);\n\n if (candidate) {\n return candidate;\n }\n }\n\n ref = dom.findUpVirtual(node, 'label');\n candidate = ref && text.visible(ref, true);\n\n if (candidate) {\n return candidate;\n }\n\n return null;\n };\n\n text.label = function (node) {\n node = axe.utils.getNodeFromTree(node);\n return text.labelVirtual(node);\n };\n\n text.nativeElementType = [{\n matches: [{\n nodeName: 'textarea'\n }, {\n nodeName: 'input',\n properties: {\n type: ['text', 'password', 'search', 'tel', 'email', 'url']\n }\n }],\n namingMethods: 'labelText'\n }, {\n matches: {\n nodeName: 'input',\n properties: {\n type: ['button', 'submit', 'reset']\n }\n },\n namingMethods: ['valueText', 'titleText', 'buttonDefaultText']\n }, {\n matches: {\n nodeName: 'input',\n properties: {\n type: 'image'\n }\n },\n namingMethods: ['altText', 'valueText', 'labelText', 'titleText', 'buttonDefaultText']\n }, {\n matches: 'button',\n namingMethods: 'subtreeText'\n }, {\n matches: 'fieldset',\n namingMethods: 'fieldsetLegendText'\n }, {\n matches: 'OUTPUT',\n namingMethods: 'subtreeText'\n }, {\n matches: [{\n nodeName: 'select'\n }, {\n nodeName: 'input',\n properties: {\n type: /^(?!text|password|search|tel|email|url|button|submit|reset)/\n }\n }],\n namingMethods: 'labelText'\n }, {\n matches: 'summary',\n namingMethods: 'subtreeText'\n }, {\n matches: 'figure',\n namingMethods: ['figureText', 'titleText']\n }, {\n matches: 'img',\n namingMethods: 'altText'\n }, {\n matches: 'table',\n namingMethods: ['tableCaptionText', 'tableSummaryText']\n }, {\n matches: ['hr', 'br'],\n namingMethods: ['titleText', 'singleSpace']\n }];\n\n text.nativeTextAlternative = function nativeTextAlternative(virtualNode) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var actualNode = virtualNode.actualNode;\n\n if (actualNode.nodeType !== 1 || ['presentation', 'none'].includes(aria.getRole(actualNode))) {\n return '';\n }\n\n var textMethods = findTextMethods(virtualNode);\n var accName = textMethods.reduce(function (accName, step) {\n return accName || step(virtualNode, context);\n }, '');\n\n if (context.debug) {\n axe.log(accName || '{empty-value}', actualNode, context);\n }\n\n return accName;\n };\n\n function findTextMethods(virtualNode) {\n var nativeElementType = text.nativeElementType,\n nativeTextMethods = text.nativeTextMethods;\n var nativeType = nativeElementType.find(function (_ref46) {\n var matches = _ref46.matches;\n return axe.commons.matches(virtualNode, matches);\n });\n var methods = nativeType ? [].concat(nativeType.namingMethods) : [];\n return methods.map(function (methodName) {\n return nativeTextMethods[methodName];\n });\n }\n\n var defaultButtonValues = {\n submit: 'Submit',\n image: 'Submit',\n reset: 'Reset',\n button: ''\n };\n text.nativeTextMethods = {\n valueText: function valueText(_ref47) {\n var actualNode = _ref47.actualNode;\n return actualNode.value || '';\n },\n buttonDefaultText: function buttonDefaultText(_ref48) {\n var actualNode = _ref48.actualNode;\n return defaultButtonValues[actualNode.type] || '';\n },\n tableCaptionText: descendantText.bind(null, 'caption'),\n figureText: descendantText.bind(null, 'figcaption'),\n fieldsetLegendText: descendantText.bind(null, 'legend'),\n altText: attrText.bind(null, 'alt'),\n tableSummaryText: attrText.bind(null, 'summary'),\n titleText: function titleText(virtualNode, context) {\n return text.titleText(virtualNode, context);\n },\n subtreeText: function subtreeText(virtualNode, context) {\n return text.subtreeText(virtualNode, context);\n },\n labelText: function labelText(virtualNode, context) {\n return text.labelText(virtualNode, context);\n },\n singleSpace: function singleSpace() {\n return ' ';\n }\n };\n\n function attrText(attr, _ref49) {\n var actualNode = _ref49.actualNode;\n return actualNode.getAttribute(attr) || '';\n }\n\n function descendantText(nodeName, _ref50, context) {\n var actualNode = _ref50.actualNode;\n nodeName = nodeName.toLowerCase();\n var nodeNames = [nodeName, actualNode.nodeName.toLowerCase()].join(',');\n var candidate = actualNode.querySelector(nodeNames);\n\n if (!candidate || candidate.nodeName.toLowerCase() !== nodeName) {\n return '';\n }\n\n return text.accessibleText(candidate, context);\n }\n\n text.sanitize = function (str) {\n 'use strict';\n\n return str.replace(/\\r\\n/g, '\\n').replace(/\\u00A0/g, ' ').replace(/[\\s]{2,}/g, ' ').trim();\n };\n\n text.subtreeText = function subtreeText(virtualNode) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var alreadyProcessed = text.accessibleTextVirtual.alreadyProcessed;\n context.startNode = context.startNode || virtualNode;\n var strict = context.strict;\n\n if (alreadyProcessed(virtualNode, context) || !aria.namedFromContents(virtualNode, {\n strict: strict\n })) {\n return '';\n }\n\n return aria.getOwnedVirtual(virtualNode).reduce(function (contentText, child) {\n return appendAccessibleText(contentText, child, context);\n }, '');\n };\n\n var phrasingElements = ['A', 'EM', 'STRONG', 'SMALL', 'MARK', 'ABBR', 'DFN', 'I', 'B', 'S', 'U', 'CODE', 'VAR', 'SAMP', 'KBD', 'SUP', 'SUB', 'Q', 'CITE', 'SPAN', 'BDO', 'BDI', 'WBR', 'INS', 'DEL', 'MAP', 'AREA', 'NOSCRIPT', 'RUBY', 'BUTTON', 'LABEL', 'OUTPUT', 'DATALIST', 'KEYGEN', 'PROGRESS', 'COMMAND', 'CANVAS', 'TIME', 'METER', '#TEXT'];\n\n function appendAccessibleText(contentText, virtualNode, context) {\n var nodeName = virtualNode.actualNode.nodeName.toUpperCase();\n var contentTextAdd = text.accessibleTextVirtual(virtualNode, context);\n\n if (!contentTextAdd) {\n return contentText;\n }\n\n if (!phrasingElements.includes(nodeName)) {\n if (contentTextAdd[0] !== ' ') {\n contentTextAdd += ' ';\n }\n\n if (contentText && contentText[contentText.length - 1] !== ' ') {\n contentTextAdd = ' ' + contentTextAdd;\n }\n }\n\n return contentText + contentTextAdd;\n }\n\n var alwaysTitleElements = ['button', 'iframe', 'a[href]', {\n nodeName: 'input',\n properties: {\n type: 'button'\n }\n }];\n\n text.titleText = function titleText(node) {\n node = node.actualNode || node;\n\n if (node.nodeType !== 1 || !node.hasAttribute('title')) {\n return '';\n }\n\n if (!axe.commons.matches(node, alwaysTitleElements) && ['none', 'presentation'].includes(aria.getRole(node))) {\n return '';\n }\n\n return node.getAttribute('title');\n };\n\n text.hasUnicode = function hasUnicode(str, options) {\n var emoji = options.emoji,\n nonBmp = options.nonBmp,\n punctuations = options.punctuations;\n\n if (emoji) {\n return axe.imports.emojiRegexText().test(str);\n }\n\n if (nonBmp) {\n return getUnicodeNonBmpRegExp().test(str) || getSupplementaryPrivateUseRegExp().test(str);\n }\n\n if (punctuations) {\n return getPunctuationRegExp().test(str);\n }\n\n return false;\n };\n\n text.removeUnicode = function removeUnicode(str, options) {\n var emoji = options.emoji,\n nonBmp = options.nonBmp,\n punctuations = options.punctuations;\n\n if (emoji) {\n str = str.replace(axe.imports.emojiRegexText(), '');\n }\n\n if (nonBmp) {\n str = str.replace(getUnicodeNonBmpRegExp(), '');\n str = str.replace(getSupplementaryPrivateUseRegExp(), '');\n }\n\n if (punctuations) {\n str = str.replace(getPunctuationRegExp(), '');\n }\n\n return str;\n };\n\n function getUnicodeNonBmpRegExp() {\n return /[\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u20A0-\\u20CF\\u20D0-\\u20FF\\u2100-\\u214F\\u2150-\\u218F\\u2190-\\u21FF\\u2200-\\u22FF\\u2300-\\u23FF\\u2400-\\u243F\\u2440-\\u245F\\u2460-\\u24FF\\u2500-\\u257F\\u2580-\\u259F\\u25A0-\\u25FF\\u2600-\\u26FF\\u2700-\\u27BF\\uE000-\\uF8FF]/g;\n }\n\n function getPunctuationRegExp() {\n return /[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&\\xa3\\xa2\\xa5\\xa7\\u20ac()*+,\\-.\\/:;<=>?@\\[\\]^_`{|}~\\xb1]/g;\n }\n\n function getSupplementaryPrivateUseRegExp() {\n return /[\\uDB80-\\uDBBF][\\uDC00-\\uDFFF]/g;\n }\n\n text.unsupported = {\n accessibleNameFromFieldValue: ['combobox', 'listbox', 'progressbar']\n };\n\n text.visibleTextNodes = function (vNode) {\n var parentVisible = axe.commons.dom.isVisible(vNode.actualNode);\n var nodes = [];\n vNode.children.forEach(function (child) {\n if (child.actualNode.nodeType === 3) {\n if (parentVisible) {\n nodes.push(child);\n }\n } else {\n nodes = nodes.concat(text.visibleTextNodes(child));\n }\n });\n return nodes;\n };\n\n text.visibleVirtual = function (element, screenReader, noRecursing) {\n var result = element.children.map(function (child) {\n if (child.actualNode.nodeType === 3) {\n var nodeValue = child.actualNode.nodeValue;\n\n if (nodeValue && dom.isVisible(element.actualNode, screenReader)) {\n return nodeValue;\n }\n } else if (!noRecursing) {\n return text.visibleVirtual(child, screenReader);\n }\n }).join('');\n return text.sanitize(result);\n };\n\n text.visible = function (element, screenReader, noRecursing) {\n element = axe.utils.getNodeFromTree(element);\n return text.visibleVirtual(element, screenReader, noRecursing);\n };\n\n return commons;\n }()\n });\n})(typeof window === 'object' ? window : this);"],"sourceRoot":""}