{"version":3,"file":"polyfills.js","mappings":"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","names":["window","global","Buffer","require","exports","byteLength","b64","lens","getLens","placeHoldersLen","toByteArray","tmp","i","validLen","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","tripletToBase64","num","start","end","output","base64","ieee754","customInspectSymbol","Symbol","for","SlowBuffer","alloc","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","fromString","string","encoding","isEncoding","actual","write","slice","ArrayBuffer","isView","fromArrayView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","SharedArrayBuffer","valueOf","b","fromObject","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","str","byteArray","base64Write","ucs2Write","utf16leToBytes","units","c","hi","lo","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","TYPED_ARRAY_SUPPORT","typedArraySupport","proto","foo","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","INSPECT_MAX_BYTES","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","split","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","isLE","mLen","nBytes","e","eLen","eMax","eBias","nBits","d","s","NaN","rt","isNaN","log","LN2","globalThis","__symbol__","__Zone_symbol_prefix","ObjectGetOwnPropertyDescriptor","getOwnPropertyDescriptor","ObjectDefineProperty","ObjectGetPrototypeOf","getPrototypeOf","ObjectCreate","create","ArraySlice","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","wrapWithCurrentZone","callback","source","Zone","current","wrap","scheduleMacroTaskWithCurrentZone","customSchedule","customCancel","scheduleMacroTask","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","bindArguments","args","isPropertyWritable","propertyDesc","isWebWorker","WorkerGlobalScope","self","isNode","process","isBrowser","HTMLElement","isMix","zoneSymbolEventNames$1","wrapFn","event","eventNameSymbol","listener","result","filename","lineno","colno","preventDefault","patchProperty","prop","desc","onPropPatchedSymbol","hasOwnProperty","originalDescGet","originalDescSet","eventName","newValue","removeEventListener","addEventListener","removeAttribute","patchOnProperties","properties","onProperties","originalInstanceKey","patchClass","className","OriginalClass","attachOriginToPatched","instance","patchMethod","patchFn","delegateName","delegate","patchDelegate","patchMacroTask","funcName","metaCreator","setNative","scheduleTask","task","cbIdx","invoke","meta","patched","original","isDetectedIEOrEdge","ieOrEdge","isIEOrEdge","ua","navigator","userAgent","passiveSupported","options","OPTIMIZED_ZONE_EVENT_TASK_DATA","useG","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbol","symbolCapture","patchEventTarget","api","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","invokeTask","isRemoved","handleEvent","originalDelegate","err","once","globalCallback","context","isCapture","tasks","copyTasks","nativeScheduleMicroTask","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","checkDuplicate","chkDup","returnTarget","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","isExisting","capture","symbolEventNames","symbolEventName","existingTasks","splice","removeAbortListener","allRemoved","diff","typeOfDelegate","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","passive","copyEventListenerOptions","newOptions","signal","buildEventListenerOptions","aborted","zone","constructorName","targetSource","scheduleEventTask","onAbort","cancelTask","unshift","existingTask","findEventTasks","captureTasks","removeTasks","keys","match","exec","evtName","results","foundTasks","captureFalseTasks","captureTrueTasks","patchEventPrototype","Event","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","handleId","clearTask","isPeriodic","delay","handle","ref","unref","bind","id","state","cancelFn","runCount","filterProperties","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","patchCallbacks","targetName","method","callbacks","nativeDelegate","opts","forEach","descriptor","_redefineProperty","Zone$1","loadZone","initZone","performance","mark","performanceMeasure","label","measure","ZoneImpl","assertZonePatched","Promise","patches","ZoneAwarePromise","root","parent","_currentZoneFrame","currentTask","_currentTask","__load_patch","ignoreDuplicate","perfName","_api","_parent","_name","zoneSpec","_properties","_zoneDelegate","_ZoneDelegate","key","getZoneWith","fork","_callback","intercept","runGuarded","run","applyThis","applyArgs","handleError","runTask","NO_ZONE","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","previousTask","unknown","_updateTaskCount","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","scheduleMicroTask","ZoneTask","microTask","canceling","count","DELEGATE_ZS","onHasTask","_","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","targetZone","returnTask","scheduleFn","isEmpty","counts","prev","next","change","_state","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","symbolSetTimeout","symbolPromise","symbolThen","nativeMicroTaskQueuePromise","_microTaskQueue","_isDrainingMicrotaskQueue","func","resolve","nativeThen","then","queue","onUnhandledError","microtaskDrainDone","currentZoneFrame","noop","showUncaughtError","patchThen","getGlobalObjects","patchCommon","patchPromise","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","rejection","stack","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","forwardResolution","forwardRejection","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","promise","v","resolvePromise","wasCalled","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","trace","scheduleResolveOrReject","readableObjectToString","JSON","stringify","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","AggregateError","withResolvers","rej","any","values","iterator","promises","finished","race","onResolve","onReject","all","allWithCallback","allSettled","thenCallback","status","errorCallback","reason","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","zoneify","resultPromise","ctor","patchToString","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","nativePromise","nativeError","originalObjectToString","patchUtil","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchBrowser","legacyPatch","clear","blockingMethods","patchEvent","eventTargetPatch","EVENT_TARGET","EventTarget","XMLHttpRequestEventTarget","propertyDescriptorPatch","__Zone_ignore_on_properties","patchTargets","ignoreErrorProperties","isIE","patchCustomElements","customElements","patchXHR","XMLHttpRequest","XMLHttpRequestPrototype","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","XHR_SCHEDULED","XHR_ERROR_BEFORE_SCHEDULED","XHR_LISTENER","newListener","readyState","DONE","loadTasks","oriInvoke","XHR_TASK","sendNative","placeholderCallback","abortNative","openNative","XHR_SYNC","XHR_URL","fetchTaskAborting","fetchTaskScheduling","url","findPendingTask","geolocation","patchPrototype","fnNames","findPromiseRejectionHandler","PromiseRejectionEvent","evt","patchQueueMicrotask","_delay","_endDelay","_fill","_iterationStart","_iterations","_duration","_playbackRate","_direction","_easing","_easingFunction","isDeprecated","f","duration","w","g","h","k","l","document","createElement","style","animationTimingFunction","F","A","G","middle","z","B","o","H","endDelay","I","J","K","_setMember","_effect","_timingInput","_timing","normalizeTimingInput","activeDuration","calculateActiveDuration","_animation","_rebuildUnderlyingAnimation","playbackRate","iterationStart","direction","easing","iterations","ease","D","cloneTimingInput","makeTiming","numericTimingToObject","calculateIterationProgress","u","p","q","r","t","calculatePhase","normalizeEasing","parseEasingFunction","composite","sort","background","border","borderBottom","borderColor","borderLeft","borderRadius","borderRight","borderTop","borderWidth","flex","font","margin","outline","padding","createElementNS","thin","medium","thick","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontSize","small","large","fontWeight","normal","bold","outlineWidth","textShadow","none","boxShadow","convertToArrayForm","normalizeKeyframes","DOMException","NOT_SUPPORTED_ERR","Date","setMonth","getMonth","warn","toDateString","deprecated","documentElement","animate","convertEffectInput","applyFrom","applyTo","startOffset","endOffset","easingFunction","property","interpolation","propertyInterpolation","toUpperCase","addPropertiesHandler","backgroundColor","backgroundPosition","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderLeftColor","borderRightColor","borderSpacing","borderTopColor","borderTopLeftRadius","borderTopRightRadius","bottom","clip","color","height","left","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","maxHeight","maxWidth","minHeight","minWidth","opacity","outlineColor","outlineOffset","paddingBottom","paddingLeft","paddingRight","paddingTop","right","strokeDasharray","strokeDashoffset","textIndent","top","transform","verticalAlign","visibility","width","wordSpacing","zIndex","test","Interpolation","KeyframeEffect","_totalDuration","_update","_clear","_hasSameTarget","_target","_id","_element","_surrogateStyle","_style","_length","_isAnimatedProperty","_updateSvgTransformAttr","namespaceURI","_savedTransformAttr","_updateIndices","cssText","parentRule","getPropertyCSSValue","getPropertyPriority","getPropertyValue","item","removeProperty","setProperty","_set","unprefixedPropertyName","getAttribute","setAttribute","transformToSvgMatrix","_webAnimationsPatchedStyle","propertyName","Element","timeline","_play","composeMatrix","quat","dot","acos","sin","sqrt","cos","sequenceNumber","currentTime","timelineTime","bubbles","cancelable","currentTarget","defaultPrevented","eventPhase","AT_TARGET","timeStamp","now","Animation","_sequenceNumber","_currentTime","_startTime","_paused","_inTimeline","_finishedFlag","onfinish","_finishHandlers","_inEffect","_idle","_currentTimePending","_ensureAlive","_animations","_tickCurrentTime","_isFinished","restart","_timeline","applyDirtiedAnimation","startTime","playState","_rewind","play","pause","finish","cancel","reverse","_fireEvents","setTimeout","_tick","_needsTick","pending","_targetAnimations","_activeAnimations","_markTarget","_unmarkTarget","requestAnimationFrame","cancelAnimationFrame","timing","deg","grad","turn","PI","rad","tan","px","reduce","makeMatrixDecomposition","transformListToMatrix","ignoreCase","consumeToken","consumeTrimmed","consumeRepeated","consumeParenthesised","ignore","optional","consumeList","mergeNestedRepeated","mergeWrappedNestedRepeated","mergeList","inset","lengths","consumeLengthOrPercent","consumeColor","mergeDimensions","mergeColors","toFixed","clamp","round","parseNumber","parseNumberList","mergeNumbers","numberToString","fillStyle","fillRect","getImageData","clearRect","getContext","search","parseLength","parseLengthOrPercent","parseAngle","consumeSizePairList","mergeNonNegativeSizePair","parseBox","mergeBoxes","index","N","T","L","lastIndex","decompositionPair","matrix","matrix3d","rotate","rotatex","rotatey","rotatez","rotate3d","perspective","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","translate","translatex","translatey","translatez","translate3d","center","consumePosition","mergeOffsetList","oncancel","_cancelHandlers","getComputedStyle"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/polyfills.ts","./node_modules/base64-js/index.js","./node_modules/buffer/index.js","./node_modules/ieee754/index.js","./node_modules/zone.js/fesm2015/zone.js","./node_modules/web-animations-js/web-animations.min.js"],"sourcesContent":["/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** ALL Firefox browsers require the following to support `@angular/animation`. **/\nimport 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n/***************************************************************************************************\n * Zone JS is required by Angular itself.\n */\nimport 'zone.js'; // Included with Angular CLI.\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n\n/**\n * Date, currency, decimal and percent pipes.\n * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10\n */\n// import 'intl';  // Run `npm install --save intl`.\n/**\n * Need to import at least one locale-data with intl.\n */\n// import 'intl/locale-data/jsonp/en';\n\n(window as any).global = window;\n\n(window as any).Buffer = require('buffer/').Buffer;\n\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let buf\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array)\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset)\n  } else {\n    buf = new Uint8Array(array, byteOffset, length)\n  }\n\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(len)\n\n    if (buf.length === 0) {\n      return buf\n    }\n\n    obj.copy(buf, 0, 0, len)\n    return buf\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\n  }\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return b != null && b._isBuffer === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  let i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  const length = this.length\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset // Coerce to Number.\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  let indexSize = 1\n  let arrLength = arr.length\n  let valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  let i\n  if (dir) {\n    let foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      let found = true\n      for (let j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  const remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0\n    if (isFinite(length)) {\n      length = length >>> 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  let res = ''\n  let i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  const len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let i = byteLength\n  let mul = 1\n  let val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  let c, hi, lo\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  let i\n  for (i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n/**\n * @license Angular v<unknown>\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\nconst global = globalThis;\n// __Zone_symbol_prefix global can be used to override the default zone\n// symbol prefix with a custom one if needed.\nfunction __symbol__(name) {\n    const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n    return symbolPrefix + name;\n}\nfunction initZone() {\n    const performance = global['performance'];\n    function mark(name) {\n        performance && performance['mark'] && performance['mark'](name);\n    }\n    function performanceMeasure(name, label) {\n        performance && performance['measure'] && performance['measure'](name, label);\n    }\n    mark('Zone');\n    class ZoneImpl {\n        // tslint:disable-next-line:require-internal-with-underscore\n        static { this.__symbol__ = __symbol__; }\n        static assertZonePatched() {\n            if (global['Promise'] !== patches['ZoneAwarePromise']) {\n                throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n                    'has been overwritten.\\n' +\n                    'Most likely cause is that a Promise polyfill has been loaded ' +\n                    'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n                    'If you must load one, do so before loading zone.js.)');\n            }\n        }\n        static get root() {\n            let zone = ZoneImpl.current;\n            while (zone.parent) {\n                zone = zone.parent;\n            }\n            return zone;\n        }\n        static get current() {\n            return _currentZoneFrame.zone;\n        }\n        static get currentTask() {\n            return _currentTask;\n        }\n        // tslint:disable-next-line:require-internal-with-underscore\n        static __load_patch(name, fn, ignoreDuplicate = false) {\n            if (patches.hasOwnProperty(name)) {\n                // `checkDuplicate` option is defined from global variable\n                // so it works for all modules.\n                // `ignoreDuplicate` can work for the specified module\n                const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n                if (!ignoreDuplicate && checkDuplicate) {\n                    throw Error('Already loaded patch: ' + name);\n                }\n            }\n            else if (!global['__Zone_disable_' + name]) {\n                const perfName = 'Zone:' + name;\n                mark(perfName);\n                patches[name] = fn(global, ZoneImpl, _api);\n                performanceMeasure(perfName, perfName);\n            }\n        }\n        get parent() {\n            return this._parent;\n        }\n        get name() {\n            return this._name;\n        }\n        constructor(parent, zoneSpec) {\n            this._parent = parent;\n            this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '<root>';\n            this._properties = (zoneSpec && zoneSpec.properties) || {};\n            this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n        }\n        get(key) {\n            const zone = this.getZoneWith(key);\n            if (zone)\n                return zone._properties[key];\n        }\n        getZoneWith(key) {\n            let current = this;\n            while (current) {\n                if (current._properties.hasOwnProperty(key)) {\n                    return current;\n                }\n                current = current._parent;\n            }\n            return null;\n        }\n        fork(zoneSpec) {\n            if (!zoneSpec)\n                throw new Error('ZoneSpec required!');\n            return this._zoneDelegate.fork(this, zoneSpec);\n        }\n        wrap(callback, source) {\n            if (typeof callback !== 'function') {\n                throw new Error('Expecting function got: ' + callback);\n            }\n            const _callback = this._zoneDelegate.intercept(this, callback, source);\n            const zone = this;\n            return function () {\n                return zone.runGuarded(_callback, this, arguments, source);\n            };\n        }\n        run(callback, applyThis, applyArgs, source) {\n            _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n            try {\n                return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n            }\n            finally {\n                _currentZoneFrame = _currentZoneFrame.parent;\n            }\n        }\n        runGuarded(callback, applyThis = null, applyArgs, source) {\n            _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n            try {\n                try {\n                    return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n                }\n                catch (error) {\n                    if (this._zoneDelegate.handleError(this, error)) {\n                        throw error;\n                    }\n                }\n            }\n            finally {\n                _currentZoneFrame = _currentZoneFrame.parent;\n            }\n        }\n        runTask(task, applyThis, applyArgs) {\n            if (task.zone != this) {\n                throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n                    (task.zone || NO_ZONE).name +\n                    '; Execution: ' +\n                    this.name +\n                    ')');\n            }\n            // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n            // will run in notScheduled(canceled) state, we should not try to\n            // run such kind of task but just return\n            if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n                return;\n            }\n            const reEntryGuard = task.state != running;\n            reEntryGuard && task._transitionTo(running, scheduled);\n            task.runCount++;\n            const previousTask = _currentTask;\n            _currentTask = task;\n            _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n            try {\n                if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n                    task.cancelFn = undefined;\n                }\n                try {\n                    return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n                }\n                catch (error) {\n                    if (this._zoneDelegate.handleError(this, error)) {\n                        throw error;\n                    }\n                }\n            }\n            finally {\n                // if the task's state is notScheduled or unknown, then it has already been cancelled\n                // we should not reset the state to scheduled\n                if (task.state !== notScheduled && task.state !== unknown) {\n                    if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n                        reEntryGuard && task._transitionTo(scheduled, running);\n                    }\n                    else {\n                        task.runCount = 0;\n                        this._updateTaskCount(task, -1);\n                        reEntryGuard &&\n                            task._transitionTo(notScheduled, running, notScheduled);\n                    }\n                }\n                _currentZoneFrame = _currentZoneFrame.parent;\n                _currentTask = previousTask;\n            }\n        }\n        scheduleTask(task) {\n            if (task.zone && task.zone !== this) {\n                // check if the task was rescheduled, the newZone\n                // should not be the children of the original zone\n                let newZone = this;\n                while (newZone) {\n                    if (newZone === task.zone) {\n                        throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n                    }\n                    newZone = newZone.parent;\n                }\n            }\n            task._transitionTo(scheduling, notScheduled);\n            const zoneDelegates = [];\n            task._zoneDelegates = zoneDelegates;\n            task._zone = this;\n            try {\n                task = this._zoneDelegate.scheduleTask(this, task);\n            }\n            catch (err) {\n                // should set task's state to unknown when scheduleTask throw error\n                // because the err may from reschedule, so the fromState maybe notScheduled\n                task._transitionTo(unknown, scheduling, notScheduled);\n                // TODO: @JiaLiPassion, should we check the result from handleError?\n                this._zoneDelegate.handleError(this, err);\n                throw err;\n            }\n            if (task._zoneDelegates === zoneDelegates) {\n                // we have to check because internally the delegate can reschedule the task.\n                this._updateTaskCount(task, 1);\n            }\n            if (task.state == scheduling) {\n                task._transitionTo(scheduled, scheduling);\n            }\n            return task;\n        }\n        scheduleMicroTask(source, callback, data, customSchedule) {\n            return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n        }\n        scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n            return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n        }\n        scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n            return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n        }\n        cancelTask(task) {\n            if (task.zone != this)\n                throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n                    (task.zone || NO_ZONE).name +\n                    '; Execution: ' +\n                    this.name +\n                    ')');\n            if (task.state !== scheduled && task.state !== running) {\n                return;\n            }\n            task._transitionTo(canceling, scheduled, running);\n            try {\n                this._zoneDelegate.cancelTask(this, task);\n            }\n            catch (err) {\n                // if error occurs when cancelTask, transit the state to unknown\n                task._transitionTo(unknown, canceling);\n                this._zoneDelegate.handleError(this, err);\n                throw err;\n            }\n            this._updateTaskCount(task, -1);\n            task._transitionTo(notScheduled, canceling);\n            task.runCount = 0;\n            return task;\n        }\n        _updateTaskCount(task, count) {\n            const zoneDelegates = task._zoneDelegates;\n            if (count == -1) {\n                task._zoneDelegates = null;\n            }\n            for (let i = 0; i < zoneDelegates.length; i++) {\n                zoneDelegates[i]._updateTaskCount(task.type, count);\n            }\n        }\n    }\n    const DELEGATE_ZS = {\n        name: '',\n        onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n        onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n        onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n        onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task),\n    };\n    class _ZoneDelegate {\n        get zone() {\n            return this._zone;\n        }\n        constructor(zone, parentDelegate, zoneSpec) {\n            this._taskCounts = {\n                'microTask': 0,\n                'macroTask': 0,\n                'eventTask': 0,\n            };\n            this._zone = zone;\n            this._parentDelegate = parentDelegate;\n            this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n            this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n            this._forkCurrZone =\n                zoneSpec && (zoneSpec.onFork ? this._zone : parentDelegate._forkCurrZone);\n            this._interceptZS =\n                zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n            this._interceptDlgt =\n                zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n            this._interceptCurrZone =\n                zoneSpec && (zoneSpec.onIntercept ? this._zone : parentDelegate._interceptCurrZone);\n            this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n            this._invokeDlgt =\n                zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n            this._invokeCurrZone =\n                zoneSpec && (zoneSpec.onInvoke ? this._zone : parentDelegate._invokeCurrZone);\n            this._handleErrorZS =\n                zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n            this._handleErrorDlgt =\n                zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n            this._handleErrorCurrZone =\n                zoneSpec && (zoneSpec.onHandleError ? this._zone : parentDelegate._handleErrorCurrZone);\n            this._scheduleTaskZS =\n                zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n            this._scheduleTaskDlgt =\n                zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n            this._scheduleTaskCurrZone =\n                zoneSpec && (zoneSpec.onScheduleTask ? this._zone : parentDelegate._scheduleTaskCurrZone);\n            this._invokeTaskZS =\n                zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n            this._invokeTaskDlgt =\n                zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n            this._invokeTaskCurrZone =\n                zoneSpec && (zoneSpec.onInvokeTask ? this._zone : parentDelegate._invokeTaskCurrZone);\n            this._cancelTaskZS =\n                zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n            this._cancelTaskDlgt =\n                zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n            this._cancelTaskCurrZone =\n                zoneSpec && (zoneSpec.onCancelTask ? this._zone : parentDelegate._cancelTaskCurrZone);\n            this._hasTaskZS = null;\n            this._hasTaskDlgt = null;\n            this._hasTaskDlgtOwner = null;\n            this._hasTaskCurrZone = null;\n            const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n            const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n            if (zoneSpecHasTask || parentHasTask) {\n                // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n                // a case all task related interceptors must go through this ZD. We can't short circuit it.\n                this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n                this._hasTaskDlgt = parentDelegate;\n                this._hasTaskDlgtOwner = this;\n                this._hasTaskCurrZone = this._zone;\n                if (!zoneSpec.onScheduleTask) {\n                    this._scheduleTaskZS = DELEGATE_ZS;\n                    this._scheduleTaskDlgt = parentDelegate;\n                    this._scheduleTaskCurrZone = this._zone;\n                }\n                if (!zoneSpec.onInvokeTask) {\n                    this._invokeTaskZS = DELEGATE_ZS;\n                    this._invokeTaskDlgt = parentDelegate;\n                    this._invokeTaskCurrZone = this._zone;\n                }\n                if (!zoneSpec.onCancelTask) {\n                    this._cancelTaskZS = DELEGATE_ZS;\n                    this._cancelTaskDlgt = parentDelegate;\n                    this._cancelTaskCurrZone = this._zone;\n                }\n            }\n        }\n        fork(targetZone, zoneSpec) {\n            return this._forkZS\n                ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec)\n                : new ZoneImpl(targetZone, zoneSpec);\n        }\n        intercept(targetZone, callback, source) {\n            return this._interceptZS\n                ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source)\n                : callback;\n        }\n        invoke(targetZone, callback, applyThis, applyArgs, source) {\n            return this._invokeZS\n                ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source)\n                : callback.apply(applyThis, applyArgs);\n        }\n        handleError(targetZone, error) {\n            return this._handleErrorZS\n                ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error)\n                : true;\n        }\n        scheduleTask(targetZone, task) {\n            let returnTask = task;\n            if (this._scheduleTaskZS) {\n                if (this._hasTaskZS) {\n                    returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n                }\n                returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n                if (!returnTask)\n                    returnTask = task;\n            }\n            else {\n                if (task.scheduleFn) {\n                    task.scheduleFn(task);\n                }\n                else if (task.type == microTask) {\n                    scheduleMicroTask(task);\n                }\n                else {\n                    throw new Error('Task is missing scheduleFn.');\n                }\n            }\n            return returnTask;\n        }\n        invokeTask(targetZone, task, applyThis, applyArgs) {\n            return this._invokeTaskZS\n                ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs)\n                : task.callback.apply(applyThis, applyArgs);\n        }\n        cancelTask(targetZone, task) {\n            let value;\n            if (this._cancelTaskZS) {\n                value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n            }\n            else {\n                if (!task.cancelFn) {\n                    throw Error('Task is not cancelable');\n                }\n                value = task.cancelFn(task);\n            }\n            return value;\n        }\n        hasTask(targetZone, isEmpty) {\n            // hasTask should not throw error so other ZoneDelegate\n            // can still trigger hasTask callback\n            try {\n                this._hasTaskZS &&\n                    this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n            }\n            catch (err) {\n                this.handleError(targetZone, err);\n            }\n        }\n        // tslint:disable-next-line:require-internal-with-underscore\n        _updateTaskCount(type, count) {\n            const counts = this._taskCounts;\n            const prev = counts[type];\n            const next = (counts[type] = prev + count);\n            if (next < 0) {\n                throw new Error('More tasks executed then were scheduled.');\n            }\n            if (prev == 0 || next == 0) {\n                const isEmpty = {\n                    microTask: counts['microTask'] > 0,\n                    macroTask: counts['macroTask'] > 0,\n                    eventTask: counts['eventTask'] > 0,\n                    change: type,\n                };\n                this.hasTask(this._zone, isEmpty);\n            }\n        }\n    }\n    class ZoneTask {\n        constructor(type, source, callback, options, scheduleFn, cancelFn) {\n            // tslint:disable-next-line:require-internal-with-underscore\n            this._zone = null;\n            this.runCount = 0;\n            // tslint:disable-next-line:require-internal-with-underscore\n            this._zoneDelegates = null;\n            // tslint:disable-next-line:require-internal-with-underscore\n            this._state = 'notScheduled';\n            this.type = type;\n            this.source = source;\n            this.data = options;\n            this.scheduleFn = scheduleFn;\n            this.cancelFn = cancelFn;\n            if (!callback) {\n                throw new Error('callback is not defined');\n            }\n            this.callback = callback;\n            const self = this;\n            // TODO: @JiaLiPassion options should have interface\n            if (type === eventTask && options && options.useG) {\n                this.invoke = ZoneTask.invokeTask;\n            }\n            else {\n                this.invoke = function () {\n                    return ZoneTask.invokeTask.call(global, self, this, arguments);\n                };\n            }\n        }\n        static invokeTask(task, target, args) {\n            if (!task) {\n                task = this;\n            }\n            _numberOfNestedTaskFrames++;\n            try {\n                task.runCount++;\n                return task.zone.runTask(task, target, args);\n            }\n            finally {\n                if (_numberOfNestedTaskFrames == 1) {\n                    drainMicroTaskQueue();\n                }\n                _numberOfNestedTaskFrames--;\n            }\n        }\n        get zone() {\n            return this._zone;\n        }\n        get state() {\n            return this._state;\n        }\n        cancelScheduleRequest() {\n            this._transitionTo(notScheduled, scheduling);\n        }\n        // tslint:disable-next-line:require-internal-with-underscore\n        _transitionTo(toState, fromState1, fromState2) {\n            if (this._state === fromState1 || this._state === fromState2) {\n                this._state = toState;\n                if (toState == notScheduled) {\n                    this._zoneDelegates = null;\n                }\n            }\n            else {\n                throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? \" or '\" + fromState2 + \"'\" : ''}, was '${this._state}'.`);\n            }\n        }\n        toString() {\n            if (this.data && typeof this.data.handleId !== 'undefined') {\n                return this.data.handleId.toString();\n            }\n            else {\n                return Object.prototype.toString.call(this);\n            }\n        }\n        // add toJSON method to prevent cyclic error when\n        // call JSON.stringify(zoneTask)\n        toJSON() {\n            return {\n                type: this.type,\n                state: this.state,\n                source: this.source,\n                zone: this.zone.name,\n                runCount: this.runCount,\n            };\n        }\n    }\n    //////////////////////////////////////////////////////\n    //////////////////////////////////////////////////////\n    ///  MICROTASK QUEUE\n    //////////////////////////////////////////////////////\n    //////////////////////////////////////////////////////\n    const symbolSetTimeout = __symbol__('setTimeout');\n    const symbolPromise = __symbol__('Promise');\n    const symbolThen = __symbol__('then');\n    let _microTaskQueue = [];\n    let _isDrainingMicrotaskQueue = false;\n    let nativeMicroTaskQueuePromise;\n    function nativeScheduleMicroTask(func) {\n        if (!nativeMicroTaskQueuePromise) {\n            if (global[symbolPromise]) {\n                nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n            }\n        }\n        if (nativeMicroTaskQueuePromise) {\n            let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n            if (!nativeThen) {\n                // native Promise is not patchable, we need to use `then` directly\n                // issue 1078\n                nativeThen = nativeMicroTaskQueuePromise['then'];\n            }\n            nativeThen.call(nativeMicroTaskQueuePromise, func);\n        }\n        else {\n            global[symbolSetTimeout](func, 0);\n        }\n    }\n    function scheduleMicroTask(task) {\n        // if we are not running in any task, and there has not been anything scheduled\n        // we must bootstrap the initial task creation by manually scheduling the drain\n        if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n            // We are not running in Task, so we need to kickstart the microtask queue.\n            nativeScheduleMicroTask(drainMicroTaskQueue);\n        }\n        task && _microTaskQueue.push(task);\n    }\n    function drainMicroTaskQueue() {\n        if (!_isDrainingMicrotaskQueue) {\n            _isDrainingMicrotaskQueue = true;\n            while (_microTaskQueue.length) {\n                const queue = _microTaskQueue;\n                _microTaskQueue = [];\n                for (let i = 0; i < queue.length; i++) {\n                    const task = queue[i];\n                    try {\n                        task.zone.runTask(task, null, null);\n                    }\n                    catch (error) {\n                        _api.onUnhandledError(error);\n                    }\n                }\n            }\n            _api.microtaskDrainDone();\n            _isDrainingMicrotaskQueue = false;\n        }\n    }\n    //////////////////////////////////////////////////////\n    //////////////////////////////////////////////////////\n    ///  BOOTSTRAP\n    //////////////////////////////////////////////////////\n    //////////////////////////////////////////////////////\n    const NO_ZONE = { name: 'NO ZONE' };\n    const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n    const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n    const patches = {};\n    const _api = {\n        symbol: __symbol__,\n        currentZoneFrame: () => _currentZoneFrame,\n        onUnhandledError: noop,\n        microtaskDrainDone: noop,\n        scheduleMicroTask: scheduleMicroTask,\n        showUncaughtError: () => !ZoneImpl[__symbol__('ignoreConsoleErrorUncaughtError')],\n        patchEventTarget: () => [],\n        patchOnProperties: noop,\n        patchMethod: () => noop,\n        bindArguments: () => [],\n        patchThen: () => noop,\n        patchMacroTask: () => noop,\n        patchEventPrototype: () => noop,\n        isIEOrEdge: () => false,\n        getGlobalObjects: () => undefined,\n        ObjectDefineProperty: () => noop,\n        ObjectGetOwnPropertyDescriptor: () => undefined,\n        ObjectCreate: () => undefined,\n        ArraySlice: () => [],\n        patchClass: () => noop,\n        wrapWithCurrentZone: () => noop,\n        filterProperties: () => [],\n        attachOriginToPatched: () => noop,\n        _redefineProperty: () => noop,\n        patchCallbacks: () => noop,\n        nativeScheduleMicroTask: nativeScheduleMicroTask,\n    };\n    let _currentZoneFrame = { parent: null, zone: new ZoneImpl(null, null) };\n    let _currentTask = null;\n    let _numberOfNestedTaskFrames = 0;\n    function noop() { }\n    performanceMeasure('Zone', 'Zone');\n    return ZoneImpl;\n}\n\nfunction loadZone() {\n    // if global['Zone'] already exists (maybe zone.js was already loaded or\n    // some other lib also registered a global object named Zone), we may need\n    // to throw an error, but sometimes user may not want this error.\n    // For example,\n    // we have two web pages, page1 includes zone.js, page2 doesn't.\n    // and the 1st time user load page1 and page2, everything work fine,\n    // but when user load page2 again, error occurs because global['Zone'] already exists.\n    // so we add a flag to let user choose whether to throw this error or not.\n    // By default, if existing Zone is from zone.js, we will not throw the error.\n    const global = globalThis;\n    const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n    if (global['Zone'] && (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function')) {\n        throw new Error('Zone already loaded.');\n    }\n    // Initialize global `Zone` constant.\n    global['Zone'] ??= initZone();\n    return global['Zone'];\n}\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = __symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = __symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = __symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n    return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n    return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = __symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = (isWindowExists && internalWindow) || globalThis;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n    for (let i = args.length - 1; i >= 0; i--) {\n        if (typeof args[i] === 'function') {\n            args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n        }\n    }\n    return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n    const source = prototype.constructor['name'];\n    for (let i = 0; i < fnNames.length; i++) {\n        const name = fnNames[i];\n        const delegate = prototype[name];\n        if (delegate) {\n            const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n            if (!isPropertyWritable(prototypeDesc)) {\n                continue;\n            }\n            prototype[name] = ((delegate) => {\n                const patched = function () {\n                    return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n                };\n                attachOriginToPatched(patched, delegate);\n                return patched;\n            })(delegate);\n        }\n    }\n}\nfunction isPropertyWritable(propertyDesc) {\n    if (!propertyDesc) {\n        return true;\n    }\n    if (propertyDesc.writable === false) {\n        return false;\n    }\n    return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = !('nw' in _global) &&\n    typeof _global.process !== 'undefined' &&\n    _global.process.toString() === '[object process]';\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n    _global.process.toString() === '[object process]' &&\n    !isWebWorker &&\n    !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n    // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n    // event will be undefined, so we need to use window.event\n    event = event || _global.event;\n    if (!event) {\n        return;\n    }\n    let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n    if (!eventNameSymbol) {\n        eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n    }\n    const target = this || event.target || _global;\n    const listener = target[eventNameSymbol];\n    let result;\n    if (isBrowser && target === internalWindow && event.type === 'error') {\n        // window.onerror have different signature\n        // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n        // and onerror callback will prevent default when callback return true\n        const errorEvent = event;\n        result =\n            listener &&\n                listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n        if (result === true) {\n            event.preventDefault();\n        }\n    }\n    else {\n        result = listener && listener.apply(this, arguments);\n        if (result != undefined && !result) {\n            event.preventDefault();\n        }\n    }\n    return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n    let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n    if (!desc && prototype) {\n        // when patch window object, use prototype to check prop exist or not\n        const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n        if (prototypeDesc) {\n            desc = { enumerable: true, configurable: true };\n        }\n    }\n    // if the descriptor not exists or is not configurable\n    // just return\n    if (!desc || !desc.configurable) {\n        return;\n    }\n    const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n    if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n        return;\n    }\n    // A property descriptor cannot have getter/setter and be writable\n    // deleting the writable and value properties avoids this error:\n    //\n    // TypeError: property descriptors must not specify a value or be writable when a\n    // getter or setter has been specified\n    delete desc.writable;\n    delete desc.value;\n    const originalDescGet = desc.get;\n    const originalDescSet = desc.set;\n    // slice(2) cuz 'onclick' -> 'click', etc\n    const eventName = prop.slice(2);\n    let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n    if (!eventNameSymbol) {\n        eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n    }\n    desc.set = function (newValue) {\n        // in some of windows's onproperty callback, this is undefined\n        // so we need to check it\n        let target = this;\n        if (!target && obj === _global) {\n            target = _global;\n        }\n        if (!target) {\n            return;\n        }\n        const previousValue = target[eventNameSymbol];\n        if (typeof previousValue === 'function') {\n            target.removeEventListener(eventName, wrapFn);\n        }\n        // issue #978, when onload handler was added before loading zone.js\n        // we should remove it with originalDescSet\n        originalDescSet && originalDescSet.call(target, null);\n        target[eventNameSymbol] = newValue;\n        if (typeof newValue === 'function') {\n            target.addEventListener(eventName, wrapFn, false);\n        }\n    };\n    // The getter would return undefined for unassigned properties but the default value of an\n    // unassigned property is null\n    desc.get = function () {\n        // in some of windows's onproperty callback, this is undefined\n        // so we need to check it\n        let target = this;\n        if (!target && obj === _global) {\n            target = _global;\n        }\n        if (!target) {\n            return null;\n        }\n        const listener = target[eventNameSymbol];\n        if (listener) {\n            return listener;\n        }\n        else if (originalDescGet) {\n            // result will be null when use inline event attribute,\n            // such as <button onclick=\"func();\">OK</button>\n            // because the onclick function is internal raw uncompiled handler\n            // the onclick will be evaluated when first time event was triggered or\n            // the property is accessed, https://github.com/angular/zone.js/issues/525\n            // so we should use original native get to retrieve the handler\n            let value = originalDescGet.call(this);\n            if (value) {\n                desc.set.call(this, value);\n                if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n                    target.removeAttribute(prop);\n                }\n                return value;\n            }\n        }\n        return null;\n    };\n    ObjectDefineProperty(obj, prop, desc);\n    obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n    if (properties) {\n        for (let i = 0; i < properties.length; i++) {\n            patchProperty(obj, 'on' + properties[i], prototype);\n        }\n    }\n    else {\n        const onProperties = [];\n        for (const prop in obj) {\n            if (prop.slice(0, 2) == 'on') {\n                onProperties.push(prop);\n            }\n        }\n        for (let j = 0; j < onProperties.length; j++) {\n            patchProperty(obj, onProperties[j], prototype);\n        }\n    }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n    const OriginalClass = _global[className];\n    if (!OriginalClass)\n        return;\n    // keep original class in global\n    _global[zoneSymbol(className)] = OriginalClass;\n    _global[className] = function () {\n        const a = bindArguments(arguments, className);\n        switch (a.length) {\n            case 0:\n                this[originalInstanceKey] = new OriginalClass();\n                break;\n            case 1:\n                this[originalInstanceKey] = new OriginalClass(a[0]);\n                break;\n            case 2:\n                this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n                break;\n            case 3:\n                this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n                break;\n            case 4:\n                this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n                break;\n            default:\n                throw new Error('Arg list too long.');\n        }\n    };\n    // attach original delegate to patched function\n    attachOriginToPatched(_global[className], OriginalClass);\n    const instance = new OriginalClass(function () { });\n    let prop;\n    for (prop in instance) {\n        // https://bugs.webkit.org/show_bug.cgi?id=44721\n        if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n            continue;\n        (function (prop) {\n            if (typeof instance[prop] === 'function') {\n                _global[className].prototype[prop] = function () {\n                    return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n                };\n            }\n            else {\n                ObjectDefineProperty(_global[className].prototype, prop, {\n                    set: function (fn) {\n                        if (typeof fn === 'function') {\n                            this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n                            // keep callback in wrapped function so we can\n                            // use it in Function.prototype.toString to return\n                            // the native one.\n                            attachOriginToPatched(this[originalInstanceKey][prop], fn);\n                        }\n                        else {\n                            this[originalInstanceKey][prop] = fn;\n                        }\n                    },\n                    get: function () {\n                        return this[originalInstanceKey][prop];\n                    },\n                });\n            }\n        })(prop);\n    }\n    for (prop in OriginalClass) {\n        if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n            _global[className][prop] = OriginalClass[prop];\n        }\n    }\n}\nfunction patchMethod(target, name, patchFn) {\n    let proto = target;\n    while (proto && !proto.hasOwnProperty(name)) {\n        proto = ObjectGetPrototypeOf(proto);\n    }\n    if (!proto && target[name]) {\n        // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n        proto = target;\n    }\n    const delegateName = zoneSymbol(name);\n    let delegate = null;\n    if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n        delegate = proto[delegateName] = proto[name];\n        // check whether proto[name] is writable\n        // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n        const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n        if (isPropertyWritable(desc)) {\n            const patchDelegate = patchFn(delegate, delegateName, name);\n            proto[name] = function () {\n                return patchDelegate(this, arguments);\n            };\n            attachOriginToPatched(proto[name], delegate);\n        }\n    }\n    return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n    let setNative = null;\n    function scheduleTask(task) {\n        const data = task.data;\n        data.args[data.cbIdx] = function () {\n            task.invoke.apply(this, arguments);\n        };\n        setNative.apply(data.target, data.args);\n        return task;\n    }\n    setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n        const meta = metaCreator(self, args);\n        if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n            return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n        }\n        else {\n            // cause an error by calling it directly.\n            return delegate.apply(self, args);\n        }\n    });\n}\nfunction attachOriginToPatched(patched, original) {\n    patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n    try {\n        const ua = internalWindow.navigator.userAgent;\n        if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n            return true;\n        }\n    }\n    catch (error) { }\n    return false;\n}\nfunction isIEOrEdge() {\n    if (isDetectedIEOrEdge) {\n        return ieOrEdge;\n    }\n    isDetectedIEOrEdge = true;\n    try {\n        const ua = internalWindow.navigator.userAgent;\n        if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n            ieOrEdge = true;\n        }\n    }\n    catch (error) { }\n    return ieOrEdge;\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n// Note that passive event listeners are now supported by most modern browsers,\n// including Chrome, Firefox, Safari, and Edge. There's a pending change that\n// would remove support for legacy browsers by zone.js. Removing `passiveSupported`\n// from the codebase will reduce the final code size for existing apps that still use zone.js.\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n    try {\n        const options = Object.defineProperty({}, 'passive', {\n            get: function () {\n                passiveSupported = true;\n            },\n        });\n        // Note: We pass the `options` object as the event handler too. This is not compatible with the\n        // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n        // without an actual handler.\n        window.addEventListener('test', options, options);\n        window.removeEventListener('test', options, options);\n    }\n    catch (err) {\n        passiveSupported = false;\n    }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n    useG: true,\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n    const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n    const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n    const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n    const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n    zoneSymbolEventNames[eventName] = {};\n    zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n    zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n    const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n    const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n    const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n    const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n    const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n    const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n    const PREPEND_EVENT_LISTENER = 'prependListener';\n    const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n    const invokeTask = function (task, target, event) {\n        // for better performance, check isRemoved which is set\n        // by removeEventListener\n        if (task.isRemoved) {\n            return;\n        }\n        const delegate = task.callback;\n        if (typeof delegate === 'object' && delegate.handleEvent) {\n            // create the bind version of handleEvent when invoke\n            task.callback = (event) => delegate.handleEvent(event);\n            task.originalDelegate = delegate;\n        }\n        // invoke static task.invoke\n        // need to try/catch error here, otherwise, the error in one event listener\n        // will break the executions of the other event listeners. Also error will\n        // not remove the event listener when `once` options is true.\n        let error;\n        try {\n            task.invoke(task, target, [event]);\n        }\n        catch (err) {\n            error = err;\n        }\n        const options = task.options;\n        if (options && typeof options === 'object' && options.once) {\n            // if options.once is true, after invoke once remove listener here\n            // only browser need to do this, nodejs eventEmitter will cal removeListener\n            // inside EventEmitter.once\n            const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n            target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n        }\n        return error;\n    };\n    function globalCallback(context, event, isCapture) {\n        // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n        // event will be undefined, so we need to use window.event\n        event = event || _global.event;\n        if (!event) {\n            return;\n        }\n        // event.target is needed for Samsung TV and SourceBuffer\n        // || global is needed https://github.com/angular/zone.js/issues/190\n        const target = context || event.target || _global;\n        const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n        if (tasks) {\n            const errors = [];\n            // invoke all tasks which attached to current target with given event.type and capture = false\n            // for performance concern, if task.length === 1, just invoke\n            if (tasks.length === 1) {\n                const err = invokeTask(tasks[0], target, event);\n                err && errors.push(err);\n            }\n            else {\n                // https://github.com/angular/zone.js/issues/836\n                // copy the tasks array before invoke, to avoid\n                // the callback will remove itself or other listener\n                const copyTasks = tasks.slice();\n                for (let i = 0; i < copyTasks.length; i++) {\n                    if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n                        break;\n                    }\n                    const err = invokeTask(copyTasks[i], target, event);\n                    err && errors.push(err);\n                }\n            }\n            // Since there is only one error, we don't need to schedule microTask\n            // to throw the error.\n            if (errors.length === 1) {\n                throw errors[0];\n            }\n            else {\n                for (let i = 0; i < errors.length; i++) {\n                    const err = errors[i];\n                    api.nativeScheduleMicroTask(() => {\n                        throw err;\n                    });\n                }\n            }\n        }\n    }\n    // global shared zoneAwareCallback to handle all event callback with capture = false\n    const globalZoneAwareCallback = function (event) {\n        return globalCallback(this, event, false);\n    };\n    // global shared zoneAwareCallback to handle all event callback with capture = true\n    const globalZoneAwareCaptureCallback = function (event) {\n        return globalCallback(this, event, true);\n    };\n    function patchEventTargetMethods(obj, patchOptions) {\n        if (!obj) {\n            return false;\n        }\n        let useGlobalCallback = true;\n        if (patchOptions && patchOptions.useG !== undefined) {\n            useGlobalCallback = patchOptions.useG;\n        }\n        const validateHandler = patchOptions && patchOptions.vh;\n        let checkDuplicate = true;\n        if (patchOptions && patchOptions.chkDup !== undefined) {\n            checkDuplicate = patchOptions.chkDup;\n        }\n        let returnTarget = false;\n        if (patchOptions && patchOptions.rt !== undefined) {\n            returnTarget = patchOptions.rt;\n        }\n        let proto = obj;\n        while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n            proto = ObjectGetPrototypeOf(proto);\n        }\n        if (!proto && obj[ADD_EVENT_LISTENER]) {\n            // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n            proto = obj;\n        }\n        if (!proto) {\n            return false;\n        }\n        if (proto[zoneSymbolAddEventListener]) {\n            return false;\n        }\n        const eventNameToString = patchOptions && patchOptions.eventNameToString;\n        // We use a shared global `taskData` to pass data for `scheduleEventTask`,\n        // eliminating the need to create a new object solely for passing data.\n        // WARNING: This object has a static lifetime, meaning it is not created\n        // each time `addEventListener` is called. It is instantiated only once\n        // and captured by reference inside the `addEventListener` and\n        // `removeEventListener` functions. Do not add any new properties to this\n        // object, as doing so would necessitate maintaining the information\n        // between `addEventListener` calls.\n        const taskData = {};\n        const nativeAddEventListener = (proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]);\n        const nativeRemoveEventListener = (proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n            proto[REMOVE_EVENT_LISTENER]);\n        const nativeListeners = (proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n            proto[LISTENERS_EVENT_LISTENER]);\n        const nativeRemoveAllListeners = (proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n            proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]);\n        let nativePrependEventListener;\n        if (patchOptions && patchOptions.prepend) {\n            nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n                proto[patchOptions.prepend];\n        }\n        /**\n         * This util function will build an option object with passive option\n         * to handle all possible input from the user.\n         */\n        function buildEventListenerOptions(options, passive) {\n            if (!passiveSupported && typeof options === 'object' && options) {\n                // doesn't support passive but user want to pass an object as options.\n                // this will not work on some old browser, so we just pass a boolean\n                // as useCapture parameter\n                return !!options.capture;\n            }\n            if (!passiveSupported || !passive) {\n                return options;\n            }\n            if (typeof options === 'boolean') {\n                return { capture: options, passive: true };\n            }\n            if (!options) {\n                return { passive: true };\n            }\n            if (typeof options === 'object' && options.passive !== false) {\n                return { ...options, passive: true };\n            }\n            return options;\n        }\n        const customScheduleGlobal = function (task) {\n            // if there is already a task for the eventName + capture,\n            // just return, because we use the shared globalZoneAwareCallback here.\n            if (taskData.isExisting) {\n                return;\n            }\n            return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n        };\n        /**\n         * In the context of events and listeners, this function will be\n         * called at the end by `cancelTask`, which, in turn, calls `task.cancelFn`.\n         * Cancelling a task is primarily used to remove event listeners from\n         * the task target.\n         */\n        const customCancelGlobal = function (task) {\n            // if task is not marked as isRemoved, this call is directly\n            // from Zone.prototype.cancelTask, we should remove the task\n            // from tasksList of target first\n            if (!task.isRemoved) {\n                const symbolEventNames = zoneSymbolEventNames[task.eventName];\n                let symbolEventName;\n                if (symbolEventNames) {\n                    symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n                }\n                const existingTasks = symbolEventName && task.target[symbolEventName];\n                if (existingTasks) {\n                    for (let i = 0; i < existingTasks.length; i++) {\n                        const existingTask = existingTasks[i];\n                        if (existingTask === task) {\n                            existingTasks.splice(i, 1);\n                            // set isRemoved to data for faster invokeTask check\n                            task.isRemoved = true;\n                            if (task.removeAbortListener) {\n                                task.removeAbortListener();\n                                task.removeAbortListener = null;\n                            }\n                            if (existingTasks.length === 0) {\n                                // all tasks for the eventName + capture have gone,\n                                // remove globalZoneAwareCallback and remove the task cache from target\n                                task.allRemoved = true;\n                                task.target[symbolEventName] = null;\n                            }\n                            break;\n                        }\n                    }\n                }\n            }\n            // if all tasks for the eventName + capture have gone,\n            // we will really remove the global event callback,\n            // if not, return\n            if (!task.allRemoved) {\n                return;\n            }\n            return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n        };\n        const customScheduleNonGlobal = function (task) {\n            return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n        };\n        const customSchedulePrepend = function (task) {\n            return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n        };\n        const customCancelNonGlobal = function (task) {\n            return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n        };\n        const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n        const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n        const compareTaskCallbackVsDelegate = function (task, delegate) {\n            const typeOfDelegate = typeof delegate;\n            return ((typeOfDelegate === 'function' && task.callback === delegate) ||\n                (typeOfDelegate === 'object' && task.originalDelegate === delegate));\n        };\n        const compare = patchOptions && patchOptions.diff ? patchOptions.diff : compareTaskCallbackVsDelegate;\n        const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n        const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n        function copyEventListenerOptions(options) {\n            if (typeof options === 'object' && options !== null) {\n                // We need to destructure the target `options` object since it may\n                // be frozen or sealed (possibly provided implicitly by a third-party\n                // library), or its properties may be readonly.\n                const newOptions = { ...options };\n                // The `signal` option was recently introduced, which caused regressions in\n                // third-party scenarios where `AbortController` was directly provided to\n                // `addEventListener` as options. For instance, in cases like\n                // `document.addEventListener('keydown', callback, abortControllerInstance)`,\n                // which is valid because `AbortController` includes a `signal` getter, spreading\n                // `{...options}` wouldn't copy the `signal`. Additionally, using `Object.create`\n                // isn't feasible since `AbortController` is a built-in object type, and attempting\n                // to create a new object directly with it as the prototype might result in\n                // unexpected behavior.\n                if (options.signal) {\n                    newOptions.signal = options.signal;\n                }\n                return newOptions;\n            }\n            return options;\n        }\n        const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n            return function () {\n                const target = this || _global;\n                let eventName = arguments[0];\n                if (patchOptions && patchOptions.transferEventName) {\n                    eventName = patchOptions.transferEventName(eventName);\n                }\n                let delegate = arguments[1];\n                if (!delegate) {\n                    return nativeListener.apply(this, arguments);\n                }\n                if (isNode && eventName === 'uncaughtException') {\n                    // don't patch uncaughtException of nodejs to prevent endless loop\n                    return nativeListener.apply(this, arguments);\n                }\n                // don't create the bind delegate function for handleEvent\n                // case here to improve addEventListener performance\n                // we will create the bind delegate when invoke\n                let isHandleEvent = false;\n                if (typeof delegate !== 'function') {\n                    if (!delegate.handleEvent) {\n                        return nativeListener.apply(this, arguments);\n                    }\n                    isHandleEvent = true;\n                }\n                if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n                    return;\n                }\n                const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n                const options = copyEventListenerOptions(buildEventListenerOptions(arguments[2], passive));\n                const signal = options?.signal;\n                if (signal?.aborted) {\n                    // the signal is an aborted one, just return without attaching the event listener.\n                    return;\n                }\n                if (unpatchedEvents) {\n                    // check unpatched list\n                    for (let i = 0; i < unpatchedEvents.length; i++) {\n                        if (eventName === unpatchedEvents[i]) {\n                            if (passive) {\n                                return nativeListener.call(target, eventName, delegate, options);\n                            }\n                            else {\n                                return nativeListener.apply(this, arguments);\n                            }\n                        }\n                    }\n                }\n                const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n                const once = options && typeof options === 'object' ? options.once : false;\n                const zone = Zone.current;\n                let symbolEventNames = zoneSymbolEventNames[eventName];\n                if (!symbolEventNames) {\n                    prepareEventNames(eventName, eventNameToString);\n                    symbolEventNames = zoneSymbolEventNames[eventName];\n                }\n                const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n                let existingTasks = target[symbolEventName];\n                let isExisting = false;\n                if (existingTasks) {\n                    // already have task registered\n                    isExisting = true;\n                    if (checkDuplicate) {\n                        for (let i = 0; i < existingTasks.length; i++) {\n                            if (compare(existingTasks[i], delegate)) {\n                                // same callback, same capture, same event name, just return\n                                return;\n                            }\n                        }\n                    }\n                }\n                else {\n                    existingTasks = target[symbolEventName] = [];\n                }\n                let source;\n                const constructorName = target.constructor['name'];\n                const targetSource = globalSources[constructorName];\n                if (targetSource) {\n                    source = targetSource[eventName];\n                }\n                if (!source) {\n                    source =\n                        constructorName +\n                            addSource +\n                            (eventNameToString ? eventNameToString(eventName) : eventName);\n                }\n                // In the code below, `options` should no longer be reassigned; instead, it\n                // should only be mutated. This is because we pass that object to the native\n                // `addEventListener`.\n                // It's generally recommended to use the same object reference for options.\n                // This ensures consistency and avoids potential issues.\n                taskData.options = options;\n                if (once) {\n                    // When using `addEventListener` with the `once` option, we don't pass\n                    // the `once` option directly to the native `addEventListener` method.\n                    // Instead, we keep the `once` setting and handle it ourselves.\n                    taskData.options.once = false;\n                }\n                taskData.target = target;\n                taskData.capture = capture;\n                taskData.eventName = eventName;\n                taskData.isExisting = isExisting;\n                const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n                // keep taskData into data to allow onScheduleEventTask to access the task information\n                if (data) {\n                    data.taskData = taskData;\n                }\n                if (signal) {\n                    // When using `addEventListener` with the `signal` option, we don't pass\n                    // the `signal` option directly to the native `addEventListener` method.\n                    // Instead, we keep the `signal` setting and handle it ourselves.\n                    taskData.options.signal = undefined;\n                }\n                // The `scheduleEventTask` function will ultimately call `customScheduleGlobal`,\n                // which in turn calls the native `addEventListener`. This is why `taskData.options`\n                // is updated before scheduling the task, as `customScheduleGlobal` uses\n                // `taskData.options` to pass it to the native `addEventListener`.\n                const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n                if (signal) {\n                    // after task is scheduled, we need to store the signal back to task.options\n                    taskData.options.signal = signal;\n                    // Wrapping `task` in a weak reference would not prevent memory leaks. Weak references are\n                    // primarily used for preventing strong references cycles. `onAbort` is always reachable\n                    // as it's an event listener, so its closure retains a strong reference to the `task`.\n                    const onAbort = () => task.zone.cancelTask(task);\n                    nativeListener.call(signal, 'abort', onAbort, { once: true });\n                    // We need to remove the `abort` listener when the event listener is going to be removed,\n                    // as it creates a closure that captures `task`. This closure retains a reference to the\n                    // `task` object even after it goes out of scope, preventing `task` from being garbage\n                    // collected.\n                    task.removeAbortListener = () => signal.removeEventListener('abort', onAbort);\n                }\n                // should clear taskData.target to avoid memory leak\n                // issue, https://github.com/angular/angular/issues/20442\n                taskData.target = null;\n                // need to clear up taskData because it is a global object\n                if (data) {\n                    data.taskData = null;\n                }\n                // have to save those information to task in case\n                // application may call task.zone.cancelTask() directly\n                if (once) {\n                    taskData.options.once = true;\n                }\n                if (!(!passiveSupported && typeof task.options === 'boolean')) {\n                    // if not support passive, and we pass an option object\n                    // to addEventListener, we should save the options to task\n                    task.options = options;\n                }\n                task.target = target;\n                task.capture = capture;\n                task.eventName = eventName;\n                if (isHandleEvent) {\n                    // save original delegate for compare to check duplicate\n                    task.originalDelegate = delegate;\n                }\n                if (!prepend) {\n                    existingTasks.push(task);\n                }\n                else {\n                    existingTasks.unshift(task);\n                }\n                if (returnTarget) {\n                    return target;\n                }\n            };\n        };\n        proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n        if (nativePrependEventListener) {\n            proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n        }\n        proto[REMOVE_EVENT_LISTENER] = function () {\n            const target = this || _global;\n            let eventName = arguments[0];\n            if (patchOptions && patchOptions.transferEventName) {\n                eventName = patchOptions.transferEventName(eventName);\n            }\n            const options = arguments[2];\n            const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n            const delegate = arguments[1];\n            if (!delegate) {\n                return nativeRemoveEventListener.apply(this, arguments);\n            }\n            if (validateHandler &&\n                !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n                return;\n            }\n            const symbolEventNames = zoneSymbolEventNames[eventName];\n            let symbolEventName;\n            if (symbolEventNames) {\n                symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n            }\n            const existingTasks = symbolEventName && target[symbolEventName];\n            // `existingTasks` may not exist if the `addEventListener` was called before\n            // it was patched by zone.js. Please refer to the attached issue for\n            // clarification, particularly after the `if` condition, before calling\n            // the native `removeEventListener`.\n            if (existingTasks) {\n                for (let i = 0; i < existingTasks.length; i++) {\n                    const existingTask = existingTasks[i];\n                    if (compare(existingTask, delegate)) {\n                        existingTasks.splice(i, 1);\n                        // set isRemoved to data for faster invokeTask check\n                        existingTask.isRemoved = true;\n                        if (existingTasks.length === 0) {\n                            // all tasks for the eventName + capture have gone,\n                            // remove globalZoneAwareCallback and remove the task cache from target\n                            existingTask.allRemoved = true;\n                            target[symbolEventName] = null;\n                            // in the target, we have an event listener which is added by on_property\n                            // such as target.onclick = function() {}, so we need to clear this internal\n                            // property too if all delegates with capture=false were removed\n                            // https:// github.com/angular/angular/issues/31643\n                            // https://github.com/angular/angular/issues/54581\n                            if (!capture && typeof eventName === 'string') {\n                                const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n                                target[onPropertySymbol] = null;\n                            }\n                        }\n                        // In all other conditions, when `addEventListener` is called after being\n                        // patched by zone.js, we would always find an event task on the `EventTarget`.\n                        // This will trigger `cancelFn` on the `existingTask`, leading to `customCancelGlobal`,\n                        // which ultimately removes an event listener and cleans up the abort listener\n                        // (if an `AbortSignal` was provided when scheduling a task).\n                        existingTask.zone.cancelTask(existingTask);\n                        if (returnTarget) {\n                            return target;\n                        }\n                        return;\n                    }\n                }\n            }\n            // https://github.com/angular/zone.js/issues/930\n            // We may encounter a situation where the `addEventListener` was\n            // called on the event target before zone.js is loaded, resulting\n            // in no task being stored on the event target due to its invocation\n            // of the native implementation. In this scenario, we simply need to\n            // invoke the native `removeEventListener`.\n            return nativeRemoveEventListener.apply(this, arguments);\n        };\n        proto[LISTENERS_EVENT_LISTENER] = function () {\n            const target = this || _global;\n            let eventName = arguments[0];\n            if (patchOptions && patchOptions.transferEventName) {\n                eventName = patchOptions.transferEventName(eventName);\n            }\n            const listeners = [];\n            const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n            for (let i = 0; i < tasks.length; i++) {\n                const task = tasks[i];\n                let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n                listeners.push(delegate);\n            }\n            return listeners;\n        };\n        proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n            const target = this || _global;\n            let eventName = arguments[0];\n            if (!eventName) {\n                const keys = Object.keys(target);\n                for (let i = 0; i < keys.length; i++) {\n                    const prop = keys[i];\n                    const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n                    let evtName = match && match[1];\n                    // in nodejs EventEmitter, removeListener event is\n                    // used for monitoring the removeListener call,\n                    // so just keep removeListener eventListener until\n                    // all other eventListeners are removed\n                    if (evtName && evtName !== 'removeListener') {\n                        this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n                    }\n                }\n                // remove removeListener listener finally\n                this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n            }\n            else {\n                if (patchOptions && patchOptions.transferEventName) {\n                    eventName = patchOptions.transferEventName(eventName);\n                }\n                const symbolEventNames = zoneSymbolEventNames[eventName];\n                if (symbolEventNames) {\n                    const symbolEventName = symbolEventNames[FALSE_STR];\n                    const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n                    const tasks = target[symbolEventName];\n                    const captureTasks = target[symbolCaptureEventName];\n                    if (tasks) {\n                        const removeTasks = tasks.slice();\n                        for (let i = 0; i < removeTasks.length; i++) {\n                            const task = removeTasks[i];\n                            let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n                            this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n                        }\n                    }\n                    if (captureTasks) {\n                        const removeTasks = captureTasks.slice();\n                        for (let i = 0; i < removeTasks.length; i++) {\n                            const task = removeTasks[i];\n                            let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n                            this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n                        }\n                    }\n                }\n            }\n            if (returnTarget) {\n                return this;\n            }\n        };\n        // for native toString patch\n        attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n        attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n        if (nativeRemoveAllListeners) {\n            attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n        }\n        if (nativeListeners) {\n            attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n        }\n        return true;\n    }\n    let results = [];\n    for (let i = 0; i < apis.length; i++) {\n        results[i] = patchEventTargetMethods(apis[i], patchOptions);\n    }\n    return results;\n}\nfunction findEventTasks(target, eventName) {\n    if (!eventName) {\n        const foundTasks = [];\n        for (let prop in target) {\n            const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n            let evtName = match && match[1];\n            if (evtName && (!eventName || evtName === eventName)) {\n                const tasks = target[prop];\n                if (tasks) {\n                    for (let i = 0; i < tasks.length; i++) {\n                        foundTasks.push(tasks[i]);\n                    }\n                }\n            }\n        }\n        return foundTasks;\n    }\n    let symbolEventName = zoneSymbolEventNames[eventName];\n    if (!symbolEventName) {\n        prepareEventNames(eventName);\n        symbolEventName = zoneSymbolEventNames[eventName];\n    }\n    const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n    const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n    if (!captureFalseTasks) {\n        return captureTrueTasks ? captureTrueTasks.slice() : [];\n    }\n    else {\n        return captureTrueTasks\n            ? captureFalseTasks.concat(captureTrueTasks)\n            : captureFalseTasks.slice();\n    }\n}\nfunction patchEventPrototype(global, api) {\n    const Event = global['Event'];\n    if (Event && Event.prototype) {\n        api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n            self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n            // we need to call the native stopImmediatePropagation\n            // in case in some hybrid application, some part of\n            // application will be controlled by zone, some are not\n            delegate && delegate.apply(self, args);\n        });\n    }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n    api.patchMethod(global, 'queueMicrotask', (delegate) => {\n        return function (self, args) {\n            Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n        };\n    });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n    let setNative = null;\n    let clearNative = null;\n    setName += nameSuffix;\n    cancelName += nameSuffix;\n    const tasksByHandleId = {};\n    function scheduleTask(task) {\n        const data = task.data;\n        data.args[0] = function () {\n            return task.invoke.apply(this, arguments);\n        };\n        data.handleId = setNative.apply(window, data.args);\n        return task;\n    }\n    function clearTask(task) {\n        return clearNative.call(window, task.data.handleId);\n    }\n    setNative = patchMethod(window, setName, (delegate) => function (self, args) {\n        if (typeof args[0] === 'function') {\n            const options = {\n                isPeriodic: nameSuffix === 'Interval',\n                delay: nameSuffix === 'Timeout' || nameSuffix === 'Interval' ? args[1] || 0 : undefined,\n                args: args,\n            };\n            const callback = args[0];\n            args[0] = function timer() {\n                try {\n                    return callback.apply(this, arguments);\n                }\n                finally {\n                    // issue-934, task will be cancelled\n                    // even it is a periodic task such as\n                    // setInterval\n                    // https://github.com/angular/angular/issues/40387\n                    // Cleanup tasksByHandleId should be handled before scheduleTask\n                    // Since some zoneSpec may intercept and doesn't trigger\n                    // scheduleFn(scheduleTask) provided here.\n                    if (!options.isPeriodic) {\n                        if (typeof options.handleId === 'number') {\n                            // in non-nodejs env, we remove timerId\n                            // from local cache\n                            delete tasksByHandleId[options.handleId];\n                        }\n                        else if (options.handleId) {\n                            // Node returns complex objects as handleIds\n                            // we remove task reference from timer object\n                            options.handleId[taskSymbol] = null;\n                        }\n                    }\n                }\n            };\n            const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n            if (!task) {\n                return task;\n            }\n            // Node.js must additionally support the ref and unref functions.\n            const handle = task.data.handleId;\n            if (typeof handle === 'number') {\n                // for non nodejs env, we save handleId: task\n                // mapping in local cache for clearTimeout\n                tasksByHandleId[handle] = task;\n            }\n            else if (handle) {\n                // for nodejs env, we save task\n                // reference in timerId Object for clearTimeout\n                handle[taskSymbol] = task;\n            }\n            // check whether handle is null, because some polyfill or browser\n            // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n            if (handle &&\n                handle.ref &&\n                handle.unref &&\n                typeof handle.ref === 'function' &&\n                typeof handle.unref === 'function') {\n                task.ref = handle.ref.bind(handle);\n                task.unref = handle.unref.bind(handle);\n            }\n            if (typeof handle === 'number' || handle) {\n                return handle;\n            }\n            return task;\n        }\n        else {\n            // cause an error by calling it directly.\n            return delegate.apply(window, args);\n        }\n    });\n    clearNative = patchMethod(window, cancelName, (delegate) => function (self, args) {\n        const id = args[0];\n        let task;\n        if (typeof id === 'number') {\n            // non nodejs env.\n            task = tasksByHandleId[id];\n        }\n        else {\n            // nodejs env.\n            task = id && id[taskSymbol];\n            // other environments.\n            if (!task) {\n                task = id;\n            }\n        }\n        if (task && typeof task.type === 'string') {\n            if (task.state !== 'notScheduled' &&\n                ((task.cancelFn && task.data.isPeriodic) || task.runCount === 0)) {\n                if (typeof id === 'number') {\n                    delete tasksByHandleId[id];\n                }\n                else if (id) {\n                    id[taskSymbol] = null;\n                }\n                // Do not cancel already canceled functions\n                task.zone.cancelTask(task);\n            }\n        }\n        else {\n            // cause an error by calling it directly.\n            delegate.apply(window, args);\n        }\n    });\n}\n\nfunction patchCustomElements(_global, api) {\n    const { isBrowser, isMix } = api.getGlobalObjects();\n    if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n        return;\n    }\n    // https://html.spec.whatwg.org/multipage/custom-elements.html#concept-custom-element-definition-lifecycle-callbacks\n    const callbacks = [\n        'connectedCallback',\n        'disconnectedCallback',\n        'adoptedCallback',\n        'attributeChangedCallback',\n        'formAssociatedCallback',\n        'formDisabledCallback',\n        'formResetCallback',\n        'formStateRestoreCallback',\n    ];\n    api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n    if (Zone[api.symbol('patchEventTarget')]) {\n        // EventTarget is already patched.\n        return;\n    }\n    const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n    //  predefine all __zone_symbol__ + eventName + true/false string\n    for (let i = 0; i < eventNames.length; i++) {\n        const eventName = eventNames[i];\n        const falseEventName = eventName + FALSE_STR;\n        const trueEventName = eventName + TRUE_STR;\n        const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n        const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n        zoneSymbolEventNames[eventName] = {};\n        zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n        zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n    }\n    const EVENT_TARGET = _global['EventTarget'];\n    if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n        return;\n    }\n    api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n    return true;\n}\nfunction patchEvent(global, api) {\n    api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n    if (!ignoreProperties || ignoreProperties.length === 0) {\n        return onProperties;\n    }\n    const tip = ignoreProperties.filter((ip) => ip.target === target);\n    if (!tip || tip.length === 0) {\n        return onProperties;\n    }\n    const targetIgnoreProperties = tip[0].ignoreProperties;\n    return onProperties.filter((op) => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n    // check whether target is available, sometimes target will be undefined\n    // because different browser or some 3rd party plugin.\n    if (!target) {\n        return;\n    }\n    const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n    patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n    return Object.getOwnPropertyNames(target)\n        .filter((name) => name.startsWith('on') && name.length > 2)\n        .map((name) => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n    if (isNode && !isMix) {\n        return;\n    }\n    if (Zone[api.symbol('patchEvents')]) {\n        // events are already been patched by legacy patch.\n        return;\n    }\n    const ignoreProperties = _global['__Zone_ignore_on_properties'];\n    // for browsers that we can patch the descriptor:  Chrome & Firefox\n    let patchTargets = [];\n    if (isBrowser) {\n        const internalWindow = window;\n        patchTargets = patchTargets.concat([\n            'Document',\n            'SVGElement',\n            'Element',\n            'HTMLElement',\n            'HTMLBodyElement',\n            'HTMLMediaElement',\n            'HTMLFrameSetElement',\n            'HTMLFrameElement',\n            'HTMLIFrameElement',\n            'HTMLMarqueeElement',\n            'Worker',\n        ]);\n        const ignoreErrorProperties = isIE()\n            ? [{ target: internalWindow, ignoreProperties: ['error'] }]\n            : [];\n        // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n        // so we need to pass WindowPrototype to check onProp exist or not\n        patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n    }\n    patchTargets = patchTargets.concat([\n        'XMLHttpRequest',\n        'XMLHttpRequestEventTarget',\n        'IDBIndex',\n        'IDBRequest',\n        'IDBOpenDBRequest',\n        'IDBDatabase',\n        'IDBTransaction',\n        'IDBCursor',\n        'WebSocket',\n    ]);\n    for (let i = 0; i < patchTargets.length; i++) {\n        const target = _global[patchTargets[i]];\n        target &&\n            target.prototype &&\n            patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n    }\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchBrowser(Zone) {\n    Zone.__load_patch('legacy', (global) => {\n        const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n        if (legacyPatch) {\n            legacyPatch();\n        }\n    });\n    Zone.__load_patch('timers', (global) => {\n        const set = 'set';\n        const clear = 'clear';\n        patchTimer(global, set, clear, 'Timeout');\n        patchTimer(global, set, clear, 'Interval');\n        patchTimer(global, set, clear, 'Immediate');\n    });\n    Zone.__load_patch('requestAnimationFrame', (global) => {\n        patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n        patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n        patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n    });\n    Zone.__load_patch('blocking', (global, Zone) => {\n        const blockingMethods = ['alert', 'prompt', 'confirm'];\n        for (let i = 0; i < blockingMethods.length; i++) {\n            const name = blockingMethods[i];\n            patchMethod(global, name, (delegate, symbol, name) => {\n                return function (s, args) {\n                    return Zone.current.run(delegate, global, args, name);\n                };\n            });\n        }\n    });\n    Zone.__load_patch('EventTarget', (global, Zone, api) => {\n        patchEvent(global, api);\n        eventTargetPatch(global, api);\n        // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n        const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n        if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n            api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n        }\n    });\n    Zone.__load_patch('MutationObserver', (global, Zone, api) => {\n        patchClass('MutationObserver');\n        patchClass('WebKitMutationObserver');\n    });\n    Zone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n        patchClass('IntersectionObserver');\n    });\n    Zone.__load_patch('FileReader', (global, Zone, api) => {\n        patchClass('FileReader');\n    });\n    Zone.__load_patch('on_property', (global, Zone, api) => {\n        propertyDescriptorPatch(api, global);\n    });\n    Zone.__load_patch('customElements', (global, Zone, api) => {\n        patchCustomElements(global, api);\n    });\n    Zone.__load_patch('XHR', (global, Zone) => {\n        // Treat XMLHttpRequest as a macrotask.\n        patchXHR(global);\n        const XHR_TASK = zoneSymbol('xhrTask');\n        const XHR_SYNC = zoneSymbol('xhrSync');\n        const XHR_LISTENER = zoneSymbol('xhrListener');\n        const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n        const XHR_URL = zoneSymbol('xhrURL');\n        const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n        function patchXHR(window) {\n            const XMLHttpRequest = window['XMLHttpRequest'];\n            if (!XMLHttpRequest) {\n                // XMLHttpRequest is not available in service worker\n                return;\n            }\n            const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n            function findPendingTask(target) {\n                return target[XHR_TASK];\n            }\n            let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n            let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n            if (!oriAddListener) {\n                const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n                if (XMLHttpRequestEventTarget) {\n                    const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n                    oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n                    oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n                }\n            }\n            const READY_STATE_CHANGE = 'readystatechange';\n            const SCHEDULED = 'scheduled';\n            function scheduleTask(task) {\n                const data = task.data;\n                const target = data.target;\n                target[XHR_SCHEDULED] = false;\n                target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n                // remove existing event listener\n                const listener = target[XHR_LISTENER];\n                if (!oriAddListener) {\n                    oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n                    oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n                }\n                if (listener) {\n                    oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n                }\n                const newListener = (target[XHR_LISTENER] = () => {\n                    if (target.readyState === target.DONE) {\n                        // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n                        // readyState=4 multiple times, so we need to check task state here\n                        if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n                            // check whether the xhr has registered onload listener\n                            // if that is the case, the task should invoke after all\n                            // onload listeners finish.\n                            // Also if the request failed without response (status = 0), the load event handler\n                            // will not be triggered, in that case, we should also invoke the placeholder callback\n                            // to close the XMLHttpRequest::send macroTask.\n                            // https://github.com/angular/angular/issues/38795\n                            const loadTasks = target[Zone.__symbol__('loadfalse')];\n                            if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n                                const oriInvoke = task.invoke;\n                                task.invoke = function () {\n                                    // need to load the tasks again, because in other\n                                    // load listener, they may remove themselves\n                                    const loadTasks = target[Zone.__symbol__('loadfalse')];\n                                    for (let i = 0; i < loadTasks.length; i++) {\n                                        if (loadTasks[i] === task) {\n                                            loadTasks.splice(i, 1);\n                                        }\n                                    }\n                                    if (!data.aborted && task.state === SCHEDULED) {\n                                        oriInvoke.call(task);\n                                    }\n                                };\n                                loadTasks.push(task);\n                            }\n                            else {\n                                task.invoke();\n                            }\n                        }\n                        else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n                            // error occurs when xhr.send()\n                            target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n                        }\n                    }\n                });\n                oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n                const storedTask = target[XHR_TASK];\n                if (!storedTask) {\n                    target[XHR_TASK] = task;\n                }\n                sendNative.apply(target, data.args);\n                target[XHR_SCHEDULED] = true;\n                return task;\n            }\n            function placeholderCallback() { }\n            function clearTask(task) {\n                const data = task.data;\n                // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n                // to prevent it from firing. So instead, we store info for the event listener.\n                data.aborted = true;\n                return abortNative.apply(data.target, data.args);\n            }\n            const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n                self[XHR_SYNC] = args[2] == false;\n                self[XHR_URL] = args[1];\n                return openNative.apply(self, args);\n            });\n            const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n            const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n            const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n            const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n                if (Zone.current[fetchTaskScheduling] === true) {\n                    // a fetch is scheduling, so we are using xhr to polyfill fetch\n                    // and because we already schedule macroTask for fetch, we should\n                    // not schedule a macroTask for xhr again\n                    return sendNative.apply(self, args);\n                }\n                if (self[XHR_SYNC]) {\n                    // if the XHR is sync there is no task to schedule, just execute the code.\n                    return sendNative.apply(self, args);\n                }\n                else {\n                    const options = {\n                        target: self,\n                        url: self[XHR_URL],\n                        isPeriodic: false,\n                        args: args,\n                        aborted: false,\n                    };\n                    const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n                    if (self &&\n                        self[XHR_ERROR_BEFORE_SCHEDULED] === true &&\n                        !options.aborted &&\n                        task.state === SCHEDULED) {\n                        // xhr request throw error when send\n                        // we should invoke task instead of leaving a scheduled\n                        // pending macroTask\n                        task.invoke();\n                    }\n                }\n            });\n            const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n                const task = findPendingTask(self);\n                if (task && typeof task.type == 'string') {\n                    // If the XHR has already completed, do nothing.\n                    // If the XHR has already been aborted, do nothing.\n                    // Fix #569, call abort multiple times before done will cause\n                    // macroTask task count be negative number\n                    if (task.cancelFn == null || (task.data && task.data.aborted)) {\n                        return;\n                    }\n                    task.zone.cancelTask(task);\n                }\n                else if (Zone.current[fetchTaskAborting] === true) {\n                    // the abort is called from fetch polyfill, we need to call native abort of XHR.\n                    return abortNative.apply(self, args);\n                }\n                // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n                // task\n                // to cancel. Do nothing.\n            });\n        }\n    });\n    Zone.__load_patch('geolocation', (global) => {\n        /// GEO_LOCATION\n        if (global['navigator'] && global['navigator'].geolocation) {\n            patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n        }\n    });\n    Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n        // handle unhandled promise rejection\n        function findPromiseRejectionHandler(evtName) {\n            return function (e) {\n                const eventTasks = findEventTasks(global, evtName);\n                eventTasks.forEach((eventTask) => {\n                    // windows has added unhandledrejection event listener\n                    // trigger the event listener\n                    const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n                    if (PromiseRejectionEvent) {\n                        const evt = new PromiseRejectionEvent(evtName, {\n                            promise: e.promise,\n                            reason: e.rejection,\n                        });\n                        eventTask.invoke(evt);\n                    }\n                });\n            };\n        }\n        if (global['PromiseRejectionEvent']) {\n            Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n                findPromiseRejectionHandler('unhandledrejection');\n            Zone[zoneSymbol('rejectionHandledHandler')] =\n                findPromiseRejectionHandler('rejectionhandled');\n        }\n    });\n    Zone.__load_patch('queueMicrotask', (global, Zone, api) => {\n        patchQueueMicrotask(global, api);\n    });\n}\n\nfunction patchPromise(Zone) {\n    Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n        const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n        const ObjectDefineProperty = Object.defineProperty;\n        function readableObjectToString(obj) {\n            if (obj && obj.toString === Object.prototype.toString) {\n                const className = obj.constructor && obj.constructor.name;\n                return (className ? className : '') + ': ' + JSON.stringify(obj);\n            }\n            return obj ? obj.toString() : Object.prototype.toString.call(obj);\n        }\n        const __symbol__ = api.symbol;\n        const _uncaughtPromiseErrors = [];\n        const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] !== false;\n        const symbolPromise = __symbol__('Promise');\n        const symbolThen = __symbol__('then');\n        const creationTrace = '__creationTrace__';\n        api.onUnhandledError = (e) => {\n            if (api.showUncaughtError()) {\n                const rejection = e && e.rejection;\n                if (rejection) {\n                    console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n                }\n                else {\n                    console.error(e);\n                }\n            }\n        };\n        api.microtaskDrainDone = () => {\n            while (_uncaughtPromiseErrors.length) {\n                const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n                try {\n                    uncaughtPromiseError.zone.runGuarded(() => {\n                        if (uncaughtPromiseError.throwOriginal) {\n                            throw uncaughtPromiseError.rejection;\n                        }\n                        throw uncaughtPromiseError;\n                    });\n                }\n                catch (error) {\n                    handleUnhandledRejection(error);\n                }\n            }\n        };\n        const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n        function handleUnhandledRejection(e) {\n            api.onUnhandledError(e);\n            try {\n                const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n                if (typeof handler === 'function') {\n                    handler.call(this, e);\n                }\n            }\n            catch (err) { }\n        }\n        function isThenable(value) {\n            return value && value.then;\n        }\n        function forwardResolution(value) {\n            return value;\n        }\n        function forwardRejection(rejection) {\n            return ZoneAwarePromise.reject(rejection);\n        }\n        const symbolState = __symbol__('state');\n        const symbolValue = __symbol__('value');\n        const symbolFinally = __symbol__('finally');\n        const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n        const symbolParentPromiseState = __symbol__('parentPromiseState');\n        const source = 'Promise.then';\n        const UNRESOLVED = null;\n        const RESOLVED = true;\n        const REJECTED = false;\n        const REJECTED_NO_CATCH = 0;\n        function makeResolver(promise, state) {\n            return (v) => {\n                try {\n                    resolvePromise(promise, state, v);\n                }\n                catch (err) {\n                    resolvePromise(promise, false, err);\n                }\n                // Do not return value or you will break the Promise spec.\n            };\n        }\n        const once = function () {\n            let wasCalled = false;\n            return function wrapper(wrappedFunction) {\n                return function () {\n                    if (wasCalled) {\n                        return;\n                    }\n                    wasCalled = true;\n                    wrappedFunction.apply(null, arguments);\n                };\n            };\n        };\n        const TYPE_ERROR = 'Promise resolved with itself';\n        const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n        // Promise Resolution\n        function resolvePromise(promise, state, value) {\n            const onceWrapper = once();\n            if (promise === value) {\n                throw new TypeError(TYPE_ERROR);\n            }\n            if (promise[symbolState] === UNRESOLVED) {\n                // should only get value.then once based on promise spec.\n                let then = null;\n                try {\n                    if (typeof value === 'object' || typeof value === 'function') {\n                        then = value && value.then;\n                    }\n                }\n                catch (err) {\n                    onceWrapper(() => {\n                        resolvePromise(promise, false, err);\n                    })();\n                    return promise;\n                }\n                // if (value instanceof ZoneAwarePromise) {\n                if (state !== REJECTED &&\n                    value instanceof ZoneAwarePromise &&\n                    value.hasOwnProperty(symbolState) &&\n                    value.hasOwnProperty(symbolValue) &&\n                    value[symbolState] !== UNRESOLVED) {\n                    clearRejectedNoCatch(value);\n                    resolvePromise(promise, value[symbolState], value[symbolValue]);\n                }\n                else if (state !== REJECTED && typeof then === 'function') {\n                    try {\n                        then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n                    }\n                    catch (err) {\n                        onceWrapper(() => {\n                            resolvePromise(promise, false, err);\n                        })();\n                    }\n                }\n                else {\n                    promise[symbolState] = state;\n                    const queue = promise[symbolValue];\n                    promise[symbolValue] = value;\n                    if (promise[symbolFinally] === symbolFinally) {\n                        // the promise is generated by Promise.prototype.finally\n                        if (state === RESOLVED) {\n                            // the state is resolved, should ignore the value\n                            // and use parent promise value\n                            promise[symbolState] = promise[symbolParentPromiseState];\n                            promise[symbolValue] = promise[symbolParentPromiseValue];\n                        }\n                    }\n                    // record task information in value when error occurs, so we can\n                    // do some additional work such as render longStackTrace\n                    if (state === REJECTED && value instanceof Error) {\n                        // check if longStackTraceZone is here\n                        const trace = Zone.currentTask &&\n                            Zone.currentTask.data &&\n                            Zone.currentTask.data[creationTrace];\n                        if (trace) {\n                            // only keep the long stack trace into error when in longStackTraceZone\n                            ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, {\n                                configurable: true,\n                                enumerable: false,\n                                writable: true,\n                                value: trace,\n                            });\n                        }\n                    }\n                    for (let i = 0; i < queue.length;) {\n                        scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n                    }\n                    if (queue.length == 0 && state == REJECTED) {\n                        promise[symbolState] = REJECTED_NO_CATCH;\n                        let uncaughtPromiseError = value;\n                        try {\n                            // Here we throws a new Error to print more readable error log\n                            // and if the value is not an error, zone.js builds an `Error`\n                            // Object here to attach the stack information.\n                            throw new Error('Uncaught (in promise): ' +\n                                readableObjectToString(value) +\n                                (value && value.stack ? '\\n' + value.stack : ''));\n                        }\n                        catch (err) {\n                            uncaughtPromiseError = err;\n                        }\n                        if (isDisableWrappingUncaughtPromiseRejection) {\n                            // If disable wrapping uncaught promise reject\n                            // use the value instead of wrapping it.\n                            uncaughtPromiseError.throwOriginal = true;\n                        }\n                        uncaughtPromiseError.rejection = value;\n                        uncaughtPromiseError.promise = promise;\n                        uncaughtPromiseError.zone = Zone.current;\n                        uncaughtPromiseError.task = Zone.currentTask;\n                        _uncaughtPromiseErrors.push(uncaughtPromiseError);\n                        api.scheduleMicroTask(); // to make sure that it is running\n                    }\n                }\n            }\n            // Resolving an already resolved promise is a noop.\n            return promise;\n        }\n        const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n        function clearRejectedNoCatch(promise) {\n            if (promise[symbolState] === REJECTED_NO_CATCH) {\n                // if the promise is rejected no catch status\n                // and queue.length > 0, means there is a error handler\n                // here to handle the rejected promise, we should trigger\n                // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n                // eventHandler\n                try {\n                    const handler = Zone[REJECTION_HANDLED_HANDLER];\n                    if (handler && typeof handler === 'function') {\n                        handler.call(this, { rejection: promise[symbolValue], promise: promise });\n                    }\n                }\n                catch (err) { }\n                promise[symbolState] = REJECTED;\n                for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n                    if (promise === _uncaughtPromiseErrors[i].promise) {\n                        _uncaughtPromiseErrors.splice(i, 1);\n                    }\n                }\n            }\n        }\n        function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n            clearRejectedNoCatch(promise);\n            const promiseState = promise[symbolState];\n            const delegate = promiseState\n                ? typeof onFulfilled === 'function'\n                    ? onFulfilled\n                    : forwardResolution\n                : typeof onRejected === 'function'\n                    ? onRejected\n                    : forwardRejection;\n            zone.scheduleMicroTask(source, () => {\n                try {\n                    const parentPromiseValue = promise[symbolValue];\n                    const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n                    if (isFinallyPromise) {\n                        // if the promise is generated from finally call, keep parent promise's state and value\n                        chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n                        chainPromise[symbolParentPromiseState] = promiseState;\n                    }\n                    // should not pass value to finally callback\n                    const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution\n                        ? []\n                        : [parentPromiseValue]);\n                    resolvePromise(chainPromise, true, value);\n                }\n                catch (error) {\n                    // if error occurs, should always return this error\n                    resolvePromise(chainPromise, false, error);\n                }\n            }, chainPromise);\n        }\n        const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n        const noop = function () { };\n        const AggregateError = global.AggregateError;\n        class ZoneAwarePromise {\n            static toString() {\n                return ZONE_AWARE_PROMISE_TO_STRING;\n            }\n            static resolve(value) {\n                if (value instanceof ZoneAwarePromise) {\n                    return value;\n                }\n                return resolvePromise(new this(null), RESOLVED, value);\n            }\n            static reject(error) {\n                return resolvePromise(new this(null), REJECTED, error);\n            }\n            static withResolvers() {\n                const result = {};\n                result.promise = new ZoneAwarePromise((res, rej) => {\n                    result.resolve = res;\n                    result.reject = rej;\n                });\n                return result;\n            }\n            static any(values) {\n                if (!values || typeof values[Symbol.iterator] !== 'function') {\n                    return Promise.reject(new AggregateError([], 'All promises were rejected'));\n                }\n                const promises = [];\n                let count = 0;\n                try {\n                    for (let v of values) {\n                        count++;\n                        promises.push(ZoneAwarePromise.resolve(v));\n                    }\n                }\n                catch (err) {\n                    return Promise.reject(new AggregateError([], 'All promises were rejected'));\n                }\n                if (count === 0) {\n                    return Promise.reject(new AggregateError([], 'All promises were rejected'));\n                }\n                let finished = false;\n                const errors = [];\n                return new ZoneAwarePromise((resolve, reject) => {\n                    for (let i = 0; i < promises.length; i++) {\n                        promises[i].then((v) => {\n                            if (finished) {\n                                return;\n                            }\n                            finished = true;\n                            resolve(v);\n                        }, (err) => {\n                            errors.push(err);\n                            count--;\n                            if (count === 0) {\n                                finished = true;\n                                reject(new AggregateError(errors, 'All promises were rejected'));\n                            }\n                        });\n                    }\n                });\n            }\n            static race(values) {\n                let resolve;\n                let reject;\n                let promise = new this((res, rej) => {\n                    resolve = res;\n                    reject = rej;\n                });\n                function onResolve(value) {\n                    resolve(value);\n                }\n                function onReject(error) {\n                    reject(error);\n                }\n                for (let value of values) {\n                    if (!isThenable(value)) {\n                        value = this.resolve(value);\n                    }\n                    value.then(onResolve, onReject);\n                }\n                return promise;\n            }\n            static all(values) {\n                return ZoneAwarePromise.allWithCallback(values);\n            }\n            static allSettled(values) {\n                const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n                return P.allWithCallback(values, {\n                    thenCallback: (value) => ({ status: 'fulfilled', value }),\n                    errorCallback: (err) => ({ status: 'rejected', reason: err }),\n                });\n            }\n            static allWithCallback(values, callback) {\n                let resolve;\n                let reject;\n                let promise = new this((res, rej) => {\n                    resolve = res;\n                    reject = rej;\n                });\n                // Start at 2 to prevent prematurely resolving if .then is called immediately.\n                let unresolvedCount = 2;\n                let valueIndex = 0;\n                const resolvedValues = [];\n                for (let value of values) {\n                    if (!isThenable(value)) {\n                        value = this.resolve(value);\n                    }\n                    const curValueIndex = valueIndex;\n                    try {\n                        value.then((value) => {\n                            resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n                            unresolvedCount--;\n                            if (unresolvedCount === 0) {\n                                resolve(resolvedValues);\n                            }\n                        }, (err) => {\n                            if (!callback) {\n                                reject(err);\n                            }\n                            else {\n                                resolvedValues[curValueIndex] = callback.errorCallback(err);\n                                unresolvedCount--;\n                                if (unresolvedCount === 0) {\n                                    resolve(resolvedValues);\n                                }\n                            }\n                        });\n                    }\n                    catch (thenErr) {\n                        reject(thenErr);\n                    }\n                    unresolvedCount++;\n                    valueIndex++;\n                }\n                // Make the unresolvedCount zero-based again.\n                unresolvedCount -= 2;\n                if (unresolvedCount === 0) {\n                    resolve(resolvedValues);\n                }\n                return promise;\n            }\n            constructor(executor) {\n                const promise = this;\n                if (!(promise instanceof ZoneAwarePromise)) {\n                    throw new Error('Must be an instanceof Promise.');\n                }\n                promise[symbolState] = UNRESOLVED;\n                promise[symbolValue] = []; // queue;\n                try {\n                    const onceWrapper = once();\n                    executor &&\n                        executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n                }\n                catch (error) {\n                    resolvePromise(promise, false, error);\n                }\n            }\n            get [Symbol.toStringTag]() {\n                return 'Promise';\n            }\n            get [Symbol.species]() {\n                return ZoneAwarePromise;\n            }\n            then(onFulfilled, onRejected) {\n                // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n                // may be an object without a prototype (created through `Object.create(null)`); thus\n                // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n                // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n                // object and copies promise properties into that object (within the `getOrCreateLoad`\n                // function). The zone.js then checks if the resolved value has the `then` method and\n                // invokes it with the `value` context. Otherwise, this will throw an error: `TypeError:\n                // Cannot read properties of undefined (reading 'Symbol(Symbol.species)')`.\n                let C = this.constructor?.[Symbol.species];\n                if (!C || typeof C !== 'function') {\n                    C = this.constructor || ZoneAwarePromise;\n                }\n                const chainPromise = new C(noop);\n                const zone = Zone.current;\n                if (this[symbolState] == UNRESOLVED) {\n                    this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n                }\n                else {\n                    scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n                }\n                return chainPromise;\n            }\n            catch(onRejected) {\n                return this.then(null, onRejected);\n            }\n            finally(onFinally) {\n                // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n                let C = this.constructor?.[Symbol.species];\n                if (!C || typeof C !== 'function') {\n                    C = ZoneAwarePromise;\n                }\n                const chainPromise = new C(noop);\n                chainPromise[symbolFinally] = symbolFinally;\n                const zone = Zone.current;\n                if (this[symbolState] == UNRESOLVED) {\n                    this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n                }\n                else {\n                    scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n                }\n                return chainPromise;\n            }\n        }\n        // Protect against aggressive optimizers dropping seemingly unused properties.\n        // E.g. Closure Compiler in advanced mode.\n        ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n        ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n        ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n        ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n        const NativePromise = (global[symbolPromise] = global['Promise']);\n        global['Promise'] = ZoneAwarePromise;\n        const symbolThenPatched = __symbol__('thenPatched');\n        function patchThen(Ctor) {\n            const proto = Ctor.prototype;\n            const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n            if (prop && (prop.writable === false || !prop.configurable)) {\n                // check Ctor.prototype.then propertyDescriptor is writable or not\n                // in meteor env, writable is false, we should ignore such case\n                return;\n            }\n            const originalThen = proto.then;\n            // Keep a reference to the original method.\n            proto[symbolThen] = originalThen;\n            Ctor.prototype.then = function (onResolve, onReject) {\n                const wrapped = new ZoneAwarePromise((resolve, reject) => {\n                    originalThen.call(this, resolve, reject);\n                });\n                return wrapped.then(onResolve, onReject);\n            };\n            Ctor[symbolThenPatched] = true;\n        }\n        api.patchThen = patchThen;\n        function zoneify(fn) {\n            return function (self, args) {\n                let resultPromise = fn.apply(self, args);\n                if (resultPromise instanceof ZoneAwarePromise) {\n                    return resultPromise;\n                }\n                let ctor = resultPromise.constructor;\n                if (!ctor[symbolThenPatched]) {\n                    patchThen(ctor);\n                }\n                return resultPromise;\n            };\n        }\n        if (NativePromise) {\n            patchThen(NativePromise);\n            patchMethod(global, 'fetch', (delegate) => zoneify(delegate));\n        }\n        // This is not part of public API, but it is useful for tests, so we expose it.\n        Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n        return ZoneAwarePromise;\n    });\n}\n\nfunction patchToString(Zone) {\n    // override Function.prototype.toString to make zone.js patched function\n    // look like native function\n    Zone.__load_patch('toString', (global) => {\n        // patch Func.prototype.toString to let them look like native\n        const originalFunctionToString = Function.prototype.toString;\n        const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n        const PROMISE_SYMBOL = zoneSymbol('Promise');\n        const ERROR_SYMBOL = zoneSymbol('Error');\n        const newFunctionToString = function toString() {\n            if (typeof this === 'function') {\n                const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n                if (originalDelegate) {\n                    if (typeof originalDelegate === 'function') {\n                        return originalFunctionToString.call(originalDelegate);\n                    }\n                    else {\n                        return Object.prototype.toString.call(originalDelegate);\n                    }\n                }\n                if (this === Promise) {\n                    const nativePromise = global[PROMISE_SYMBOL];\n                    if (nativePromise) {\n                        return originalFunctionToString.call(nativePromise);\n                    }\n                }\n                if (this === Error) {\n                    const nativeError = global[ERROR_SYMBOL];\n                    if (nativeError) {\n                        return originalFunctionToString.call(nativeError);\n                    }\n                }\n            }\n            return originalFunctionToString.call(this);\n        };\n        newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n        Function.prototype.toString = newFunctionToString;\n        // patch Object.prototype.toString to let them look like native\n        const originalObjectToString = Object.prototype.toString;\n        const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n        Object.prototype.toString = function () {\n            if (typeof Promise === 'function' && this instanceof Promise) {\n                return PROMISE_OBJECT_TO_STRING;\n            }\n            return originalObjectToString.call(this);\n        };\n    });\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n    const symbol = Zone.__symbol__(method);\n    if (target[symbol]) {\n        return;\n    }\n    const nativeDelegate = (target[symbol] = target[method]);\n    target[method] = function (name, opts, options) {\n        if (opts && opts.prototype) {\n            callbacks.forEach(function (callback) {\n                const source = `${targetName}.${method}::` + callback;\n                const prototype = opts.prototype;\n                // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n                // `customElements.define`. We explicitly wrap the patching code into try-catch since\n                // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n                // make those properties non-writable. This means that patching callback will throw an error\n                // `cannot assign to read-only property`. See this code as an example:\n                // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n                // We don't want to stop the application rendering if we couldn't patch some\n                // callback, e.g. `attributeChangedCallback`.\n                try {\n                    if (prototype.hasOwnProperty(callback)) {\n                        const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n                        if (descriptor && descriptor.value) {\n                            descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n                            api._redefineProperty(opts.prototype, callback, descriptor);\n                        }\n                        else if (prototype[callback]) {\n                            prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n                        }\n                    }\n                    else if (prototype[callback]) {\n                        prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n                    }\n                }\n                catch {\n                    // Note: we leave the catch block empty since there's no way to handle the error related\n                    // to non-writable property.\n                }\n            });\n        }\n        return nativeDelegate.call(target, name, opts, options);\n    };\n    api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\nfunction patchUtil(Zone) {\n    Zone.__load_patch('util', (global, Zone, api) => {\n        // Collect native event names by looking at properties\n        // on the global namespace, e.g. 'onclick'.\n        const eventNames = getOnEventNames(global);\n        api.patchOnProperties = patchOnProperties;\n        api.patchMethod = patchMethod;\n        api.bindArguments = bindArguments;\n        api.patchMacroTask = patchMacroTask;\n        // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS`\n        // to define which events will not be patched by `Zone.js`. In newer version (>=0.9.0), we\n        // change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep the name consistent with\n        // angular repo. The  `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be\n        // supported for backwards compatibility.\n        const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n        const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n        if (global[SYMBOL_UNPATCHED_EVENTS]) {\n            global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n        }\n        if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n            Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n                global[SYMBOL_BLACK_LISTED_EVENTS];\n        }\n        api.patchEventPrototype = patchEventPrototype;\n        api.patchEventTarget = patchEventTarget;\n        api.isIEOrEdge = isIEOrEdge;\n        api.ObjectDefineProperty = ObjectDefineProperty;\n        api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n        api.ObjectCreate = ObjectCreate;\n        api.ArraySlice = ArraySlice;\n        api.patchClass = patchClass;\n        api.wrapWithCurrentZone = wrapWithCurrentZone;\n        api.filterProperties = filterProperties;\n        api.attachOriginToPatched = attachOriginToPatched;\n        api._redefineProperty = Object.defineProperty;\n        api.patchCallbacks = patchCallbacks;\n        api.getGlobalObjects = () => ({\n            globalSources,\n            zoneSymbolEventNames,\n            eventNames,\n            isBrowser,\n            isMix,\n            isNode,\n            TRUE_STR,\n            FALSE_STR,\n            ZONE_SYMBOL_PREFIX,\n            ADD_EVENT_LISTENER_STR,\n            REMOVE_EVENT_LISTENER_STR,\n        });\n    });\n}\n\nfunction patchCommon(Zone) {\n    patchPromise(Zone);\n    patchToString(Zone);\n    patchUtil(Zone);\n}\n\nconst Zone$1 = loadZone();\npatchCommon(Zone$1);\npatchBrowser(Zone$1);\n","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n//     You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//     See the License for the specific language governing permissions and\n// limitations under the License.\n\n!function(){var a={},b={};!function(a,b){function c(a){if(\"number\"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill=\"none\",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction=\"normal\",this._easing=\"linear\",this._easingFunction=x}function e(){return a.isDeprecated(\"Invalid timing inputs\",\"2016-03-02\",\"TypeError exceptions will be thrown instead.\",!0)}function f(b,c,e){var f=new d;return c&&(f.fill=\"both\",f.duration=\"auto\"),\"number\"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if(\"auto\"!=b[c]){if((\"number\"==typeof f[c]||\"duration\"==c)&&(\"number\"!=typeof b[c]||isNaN(b[c])))return;if(\"fill\"==c&&-1==v.indexOf(b[c]))return;if(\"direction\"==c&&-1==w.indexOf(b[c]))return;if(\"playbackRate\"==c&&1!==b[c]&&a.isDeprecated(\"AnimationEffectTiming.playbackRate\",\"2014-11-28\",\"Use Animation.playbackRate instead.\"))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return\"number\"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i<j;){var k=(i+j)/2,l=f(a,c,k);if(Math.abs(e-l)<1e-5)return f(b,d,k);l<e?i=k:j=k}return f(b,d,k)}}function j(a,b){return function(c){if(c>=1)return 1;var d=1/a;return(c+=b*d)-c%d}}function k(a){C||(C=document.createElement(\"div\").style),C.animationTimingFunction=\"\",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(\"\"==b&&e())throw new TypeError(a+\" is not a valid value for easing\");return b}function l(a){if(\"linear\"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),A);var d=G.exec(a);return d?j(Number(d[1]),{start:y,middle:z,end:A}[d[2]]):B[a]||x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return H;var d=c.delay+a+c.endDelay;return b<Math.min(c.delay,d)?I:b>=Math.min(c.delay+a,d)?J:K}function p(a,b,c,d,e){switch(d){case I:return\"backwards\"==b||\"both\"==b?0:null;case K:return c-e;case J:return\"forwards\"==b||\"both\"==b?a:null;case H:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==I&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==J||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===J&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if(\"normal\"!==a&&\"reverse\"!==a){var e=b;\"alternate-reverse\"===a&&(e+=1),d=\"normal\",e!==1/0&&e%2!=0&&(d=\"reverse\")}return\"normal\"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v=\"backwards|forwards|both|none\".split(\"|\"),w=\"reverse|alternate|alternate-reverse\".split(\"|\"),x=function(a){return a};d.prototype={_setMember:function(b,c){this[\"_\"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember(\"delay\",a)},get delay(){return this._delay},set endDelay(a){this._setMember(\"endDelay\",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember(\"fill\",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterationStart must be a non-negative number, received: \"+a);this._setMember(\"iterationStart\",a)},get iterationStart(){return this._iterationStart},set duration(a){if(\"auto\"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError(\"duration must be non-negative or auto, received: \"+a);this._setMember(\"duration\",a)},get duration(){return this._duration},set direction(a){this._setMember(\"direction\",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember(\"easing\",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterations must be non-negative, received: \"+a);this._setMember(\"iterations\",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),\"ease-in\":i(.42,0,1,1),\"ease-out\":i(0,0,.58,1),\"ease-in-out\":i(.42,0,.58,1),\"step-start\":j(1,y),\"step-middle\":j(1,z),\"step-end\":j(1,A)},C=null,D=\"\\\\s*(-?\\\\d+\\\\.?\\\\d*|-?\\\\.\\\\d+)\\\\s*\",E=new RegExp(\"cubic-bezier\\\\(\"+D+\",\"+D+\",\"+D+\",\"+D+\"\\\\)\"),F=/steps\\(\\s*(\\d+)\\s*\\)/,G=/steps\\(\\s*(\\d+)\\s*,\\s*(start|middle|end)\\s*\\)/,H=0,I=1,J=2,K=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(a),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return\"display\"===a||0===a.lastIndexOf(\"animation\",0)||0===a.lastIndexOf(\"transition\",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in[\"easing\",\"offset\",\"composite\"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g<f;g++)e={},e.offset=\"offset\"in a?a.offset:1==f?1:g/(f-1),\"easing\"in a&&(e.easing=a.easing),\"composite\"in a&&(e.composite=a.composite),e[c]=d[g],b.push(e)}return b.sort(function(a,b){return a.offset-b.offset}),b}function g(b){function c(){var a=d.length;null==d[a-1].offset&&(d[a-1].offset=1),a>1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e<a;e++){var f=d[e].offset;if(null!=f){for(var g=1;g<e-b;g++)d[b+g].offset=c+(f-c)*g/(e-b);b=e,c=f}}}if(null==b)return[];window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||(b=f(b));for(var d=b.map(function(b){var c={};for(var d in b){var f=b[d];if(\"offset\"==d){if(null!=f){if(f=Number(f),!isFinite(f))throw new TypeError(\"Keyframe offsets must be numbers.\");if(f<0||f>1)throw new TypeError(\"Keyframe offsets must be between 0 and 1.\")}}else if(\"composite\"==d){if(\"add\"==f||\"accumulate\"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\"NotSupportedError\",message:\"add compositing is not supported\"};if(\"replace\"!=f)throw new TypeError(\"Invalid composite mode \"+f+\".\")}else f=\"easing\"==d?a.normalizeEasing(f):\"\"+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing=\"linear\"),c}),g=!0,h=-1/0,i=0;i<d.length;i++){var j=d[i].offset;if(null!=j){if(j<h)throw new TypeError(\"Keyframes are not loosely sorted by offset. Sort or specify offsets.\");h=j}else g=!1}return d=d.filter(function(a){return a.offset>=0&&a.offset<=1}),g||c(),d}var h={background:[\"backgroundImage\",\"backgroundPosition\",\"backgroundSize\",\"backgroundRepeat\",\"backgroundAttachment\",\"backgroundOrigin\",\"backgroundClip\",\"backgroundColor\"],border:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderBottom:[\"borderBottomWidth\",\"borderBottomStyle\",\"borderBottomColor\"],borderColor:[\"borderTopColor\",\"borderRightColor\",\"borderBottomColor\",\"borderLeftColor\"],borderLeft:[\"borderLeftWidth\",\"borderLeftStyle\",\"borderLeftColor\"],borderRadius:[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\"],borderRight:[\"borderRightWidth\",\"borderRightStyle\",\"borderRightColor\"],borderTop:[\"borderTopWidth\",\"borderTopStyle\",\"borderTopColor\"],borderWidth:[\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\"],flex:[\"flexGrow\",\"flexShrink\",\"flexBasis\"],font:[\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontVariant\",\"fontWeight\",\"lineHeight\"],margin:[\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],padding:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"]},i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),j={thin:\"1px\",medium:\"3px\",thick:\"5px\"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{\"xx-small\":\"60%\",\"x-small\":\"75%\",small:\"89%\",medium:\"100%\",large:\"120%\",\"x-large\":\"150%\",\"xx-large\":\"200%\"},fontWeight:{normal:\"400\",bold:\"700\"},outlineWidth:j,textShadow:{none:\"0px 0px 0px transparent\"},boxShadow:{none:\"0px 0px 0px 0px transparent\"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(a),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?\"are\":\"is\",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g<h&&(a in b||console.warn(\"Web Animations: \"+a+\" \"+f+\" deprecated and will stop working on \"+h.toDateString()+\". \"+d),b[a]=!0,1))},a.deprecated=function(b,c,d,e){var f=e?\"are\":\"is\";if(a.isDeprecated(b,c,d,e))throw new Error(b+\" \"+f+\" no longer supported. \"+d)}}(a),function(){if(document.documentElement.animate){var c=document.documentElement.animate([],0),d=!0;if(c&&(d=!1,\"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState\".split(\"|\").forEach(function(a){void 0===c[a]&&(d=!0)})),!d)return}!function(a,b,c){function d(a){for(var b={},c=0;c<a.length;c++)for(var d in a[c])if(\"offset\"!=d&&\"easing\"!=d&&\"composite\"!=d){var e={offset:a[c].offset,easing:a[c].easing,value:a[c][d]};b[d]=b[d]||[],b[d].push(e)}for(var f in b){var g=b[f];if(0!=g[0].offset||1!=g[g.length-1].offset)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\"NotSupportedError\",message:\"Partial keyframes are not supported\"}}return b}function e(c){var d=[];for(var e in c)for(var f=c[e],g=0;g<f.length-1;g++){var h=g,i=g+1,j=f[h].offset,k=f[i].offset,l=j,m=k;0==g&&(l=-1/0,0==k&&(i=h)),g==f.length-2&&(m=1/0,1==j&&(h=i)),d.push({applyFrom:l,applyTo:m,startOffset:f[h].offset,endOffset:f[i].offset,easingFunction:a.parseEasingFunction(f[h].easing),property:e,interpolation:b.propertyInterpolation(e,f[h].value,f[i].value)})}return d.sort(function(a,b){return a.startOffset-b.startOffset}),d}b.convertEffectInput=function(c){var f=a.normalizeKeyframes(c),g=d(f),h=e(g);return function(a,c){if(null!=c)h.filter(function(a){return c>=a.applyFrom&&c<a.applyTo}).forEach(function(d){var e=c-d.startOffset,f=d.endOffset-d.startOffset,g=0==f?0:d.easingFunction(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)\"offset\"!=d&&\"easing\"!=d&&\"composite\"!=d&&b.clear(a,d)}}}(a,b),function(a,b,c){function d(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function e(a,b,c){h[c]=h[c]||[],h[c].push([a,b])}function f(a,b,c){for(var f=0;f<c.length;f++){e(a,b,d(c[f]))}}function g(c,e,f){var g=c;/-/.test(c)&&!a.isDeprecated(\"Hyphenated property names\",\"2016-03-22\",\"Use camelCase instead.\",!0)&&(g=d(c)),\"initial\"!=e&&\"initial\"!=f||(\"initial\"==e&&(e=i[g]),\"initial\"==f&&(f=i[g]));for(var j=e==f?[]:h[g],k=0;j&&k<j.length;k++){var l=j[k][0](e),m=j[k][0](f);if(void 0!==l&&void 0!==m){var n=j[k][1](l,m);if(n){var o=b.Interpolation.apply(null,n);return function(a){return 0==a?e:1==a?f:o(a)}}}}return b.Interpolation(!1,!0,function(a){return a?f:e})}var h={};b.addPropertiesHandler=f;var i={backgroundColor:\"transparent\",backgroundPosition:\"0% 0%\",borderBottomColor:\"currentColor\",borderBottomLeftRadius:\"0px\",borderBottomRightRadius:\"0px\",borderBottomWidth:\"3px\",borderLeftColor:\"currentColor\",borderLeftWidth:\"3px\",borderRightColor:\"currentColor\",borderRightWidth:\"3px\",borderSpacing:\"2px\",borderTopColor:\"currentColor\",borderTopLeftRadius:\"0px\",borderTopRightRadius:\"0px\",borderTopWidth:\"3px\",bottom:\"auto\",clip:\"rect(0px, 0px, 0px, 0px)\",color:\"black\",fontSize:\"100%\",fontWeight:\"400\",height:\"auto\",left:\"auto\",letterSpacing:\"normal\",lineHeight:\"120%\",marginBottom:\"0px\",marginLeft:\"0px\",marginRight:\"0px\",marginTop:\"0px\",maxHeight:\"none\",maxWidth:\"none\",minHeight:\"0px\",minWidth:\"0px\",opacity:\"1.0\",outlineColor:\"invert\",outlineOffset:\"0px\",outlineWidth:\"3px\",paddingBottom:\"0px\",paddingLeft:\"0px\",paddingRight:\"0px\",paddingTop:\"0px\",right:\"auto\",strokeDasharray:\"none\",strokeDashoffset:\"0px\",textIndent:\"0px\",textShadow:\"0px 0px 0px transparent\",top:\"auto\",transform:\"\",verticalAlign:\"0px\",visibility:\"visible\",width:\"auto\",wordSpacing:\"normal\",zIndex:\"auto\"};b.propertyInterpolation=g}(a,b),function(a,b,c){function d(b){var c=a.calculateActiveDuration(b),d=function(d){return a.calculateIterationProgress(c,d,b)};return d._totalDuration=b.delay+c+b.endDelay,d}b.KeyframeEffect=function(c,e,f,g){var h,i=d(a.normalizeTimingInput(f)),j=b.convertEffectInput(e),k=function(){j(c,h)};return k._update=function(a){return null!==(h=i(a))},k._clear=function(){j(c,null)},k._hasSameTarget=function(a){return c===a},k._target=c,k._totalDuration=i._totalDuration,k._id=g,k}}(a,b),function(a,b){function c(a,b){return!(!b.namespaceURI||-1==b.namespaceURI.indexOf(\"/svg\"))&&(g in a||(a[g]=/Trident|MSIE|IEMobile|Edge|Android 4/i.test(a.navigator.userAgent)),a[g])}function d(a,b,c){c.enumerable=!0,c.configurable=!0,Object.defineProperty(a,b,c)}function e(a){this._element=a,this._surrogateStyle=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\").style,this._style=a.style,this._length=0,this._isAnimatedProperty={},this._updateSvgTransformAttr=c(window,a),this._savedTransformAttr=null;for(var b=0;b<this._style.length;b++){var d=this._style[b];this._surrogateStyle[d]=this._style[d]}this._updateIndices()}function f(a){if(!a._webAnimationsPatchedStyle){var b=new e(a);try{d(a,\"style\",{get:function(){return b}})}catch(b){a.style._set=function(b,c){a.style[b]=c},a.style._clear=function(b){a.style[b]=\"\"}}a._webAnimationsPatchedStyle=a.style}}var g=\"_webAnimationsUpdateSvgTransformAttr\",h={cssText:1,length:1,parentRule:1},i={getPropertyCSSValue:1,getPropertyPriority:1,getPropertyValue:1,item:1,removeProperty:1,setProperty:1},j={removeProperty:1,setProperty:1};e.prototype={get cssText(){return this._surrogateStyle.cssText},set cssText(a){for(var b={},c=0;c<this._surrogateStyle.length;c++)b[this._surrogateStyle[c]]=!0;this._surrogateStyle.cssText=a,this._updateIndices();for(var c=0;c<this._surrogateStyle.length;c++)b[this._surrogateStyle[c]]=!0;for(var d in b)this._isAnimatedProperty[d]||this._style.setProperty(d,this._surrogateStyle.getPropertyValue(d))},get length(){return this._surrogateStyle.length},get parentRule(){return this._style.parentRule},_updateIndices:function(){for(;this._length<this._surrogateStyle.length;)Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,get:function(a){return function(){return this._surrogateStyle[a]}}(this._length)}),this._length++;for(;this._length>this._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(b,c){this._style[b]=c,this._isAnimatedProperty[b]=!0,this._updateSvgTransformAttr&&\"transform\"==a.unprefixedPropertyName(b)&&(null==this._savedTransformAttr&&(this._savedTransformAttr=this._element.getAttribute(\"transform\")),this._element.setAttribute(\"transform\",a.transformToSvgMatrix(c)))},_clear:function(b){this._style[b]=this._surrogateStyle[b],this._updateSvgTransformAttr&&\"transform\"==a.unprefixedPropertyName(b)&&(this._savedTransformAttr?this._element.setAttribute(\"transform\",this._savedTransformAttr):this._element.removeAttribute(\"transform\"),this._savedTransformAttr=null),delete this._isAnimatedProperty[b]}};for(var k in i)e.prototype[k]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(k,k in j);for(var l in document.documentElement.style)l in h||l in i||function(a){d(e.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(l);a.apply=function(b,c,d){f(b),b.style._set(a.propertyName(c),d)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(b),function(a){window.Element.prototype.animate=function(b,c){var d=\"\";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(b),function(a,b){function c(a,b,d){if(\"number\"==typeof a&&\"number\"==typeof b)return a*(1-d)+b*d;if(\"boolean\"==typeof a&&\"boolean\"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f<a.length;f++)e.push(c(a[f],b[f],d));return e}throw\"Mismatched interpolation arguments \"+a+\":\"+b}a.Interpolation=function(a,b,d){return function(e){return d(c(a,b,e))}}}(b),function(a,b){function c(a,b,c){return Math.max(Math.min(a,c),b)}function d(b,d,e){var f=a.dot(b,d);f=c(f,-1,1);var g=[];if(1===f)g=b;else for(var h=Math.acos(f),i=1*Math.sin(e*h)/Math.sqrt(1-f*f),j=0;j<4;j++)g.push(b[j]*(Math.cos(e*h)-f*i)+d[j]*i);return g}var e=function(){function a(a,b){for(var c=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],d=0;d<4;d++)for(var e=0;e<4;e++)for(var f=0;f<4;f++)c[d][e]+=b[d][f]*a[f][e];return c}function b(a){return 0==a[0][2]&&0==a[0][3]&&0==a[1][2]&&0==a[1][3]&&0==a[2][0]&&0==a[2][1]&&1==a[2][2]&&0==a[2][3]&&0==a[3][2]&&1==a[3][3]}function c(c,d,e,f,g){for(var h=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],i=0;i<4;i++)h[i][3]=g[i];for(var i=0;i<3;i++)for(var j=0;j<3;j++)h[3][i]+=c[j]*h[j][i];var k=f[0],l=f[1],m=f[2],n=f[3],o=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];o[0][0]=1-2*(l*l+m*m),o[0][1]=2*(k*l-m*n),o[0][2]=2*(k*m+l*n),o[1][0]=2*(k*l+m*n),o[1][1]=1-2*(k*k+m*m),o[1][2]=2*(l*m-k*n),o[2][0]=2*(k*m-l*n),o[2][1]=2*(l*m+k*n),o[2][2]=1-2*(k*k+l*l),h=a(h,o);var p=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];e[2]&&(p[2][1]=e[2],h=a(h,p)),e[1]&&(p[2][1]=0,p[2][0]=e[0],h=a(h,p)),e[0]&&(p[2][0]=0,p[1][0]=e[0],h=a(h,p));for(var i=0;i<3;i++)for(var j=0;j<3;j++)h[i][j]*=d[i];return b(h)?[h[0][0],h[0][1],h[1][0],h[1][1],h[3][0],h[3][1]]:h[0].concat(h[1],h[2],h[3])}return c}();a.composeMatrix=e,a.quat=d}(b),function(a,b,c){a.sequenceNumber=0;var d=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type=\"finish\",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this.id=\"\",b&&b._id&&(this.id=b._id),this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!0,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this.playbackRate<0&&0===this.currentTime?this._inEffect=this._effect._update(-1):this._inEffect=this._effect._update(this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,\"paused\"!=this.playState&&\"idle\"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?\"idle\":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?\"pending\":this._paused?\"paused\":this._isFinished?\"finished\":\"running\"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException(\"Unable to rewind negative playback rate animation with infinite duration\",\"InvalidStateError\");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){\"function\"==typeof b&&\"finish\"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if(\"finish\"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();-1===a.indexOf(this)&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);-1!==b&&a.splice(b,1)}}}(a,b),function(a,b,c){function d(a){var b=j;j=[],a<q.currentTime&&(a=q.currentTime),q._animations.sort(e),q._animations=h(a,!0,q._animations)[0],b.forEach(function(b){b[1](a)}),g(),l=void 0}function e(a,b){return a._sequenceNumber-b._sequenceNumber}function f(){this._animations=[],this.currentTime=window.performance&&performance.now?performance.now():0}function g(){o.forEach(function(a){a()}),o.length=0}function h(a,c,d){p=!0,n=!1,b.timeline.currentTime=a,m=!1;var e=[],f=[],g=[],h=[];return d.forEach(function(b){b._tick(a,c),b._inEffect?(f.push(b._effect),b._markTarget()):(e.push(b._effect),b._unmarkTarget()),b._needsTick&&(m=!0);var d=b._inEffect||b._needsTick;b._inTimeline=d,d?g.push(b):h.push(b)}),o.push.apply(o,e),o.push.apply(o,f),m&&requestAnimationFrame(function(){}),p=!1,[g,h]}var i=window.requestAnimationFrame,j=[],k=0;window.requestAnimationFrame=function(a){var b=k++;return 0==j.length&&i(d),j.push([b,a]),b},window.cancelAnimationFrame=function(a){j.forEach(function(b){b[0]==a&&(b[1]=function(){})})},f.prototype={_play:function(c){c._timing=a.normalizeTimingInput(c.timing);var d=new b.Animation(c);return d._idle=!1,d._timeline=this,this._animations.push(d),b.restart(),b.applyDirtiedAnimation(d),d}};var l=void 0,m=!1,n=!1;b.restart=function(){return m||(m=!0,requestAnimationFrame(function(){}),n=!0),n},b.applyDirtiedAnimation=function(a){if(!p){a._markTarget();var c=a._targetAnimations();c.sort(e),h(b.timeline.currentTime,!1,c.slice())[1].forEach(function(a){var b=q._animations.indexOf(a);-1!==b&&q._animations.splice(b,1)}),g()}};var o=[],p=!1,q=new f;b.timeline=q}(a,b),function(a,b){function c(a,b){for(var c=0,d=0;d<a.length;d++)c+=a[d]*b[d];return c}function d(a,b){return[a[0]*b[0]+a[4]*b[1]+a[8]*b[2]+a[12]*b[3],a[1]*b[0]+a[5]*b[1]+a[9]*b[2]+a[13]*b[3],a[2]*b[0]+a[6]*b[1]+a[10]*b[2]+a[14]*b[3],a[3]*b[0]+a[7]*b[1]+a[11]*b[2]+a[15]*b[3],a[0]*b[4]+a[4]*b[5]+a[8]*b[6]+a[12]*b[7],a[1]*b[4]+a[5]*b[5]+a[9]*b[6]+a[13]*b[7],a[2]*b[4]+a[6]*b[5]+a[10]*b[6]+a[14]*b[7],a[3]*b[4]+a[7]*b[5]+a[11]*b[6]+a[15]*b[7],a[0]*b[8]+a[4]*b[9]+a[8]*b[10]+a[12]*b[11],a[1]*b[8]+a[5]*b[9]+a[9]*b[10]+a[13]*b[11],a[2]*b[8]+a[6]*b[9]+a[10]*b[10]+a[14]*b[11],a[3]*b[8]+a[7]*b[9]+a[11]*b[10]+a[15]*b[11],a[0]*b[12]+a[4]*b[13]+a[8]*b[14]+a[12]*b[15],a[1]*b[12]+a[5]*b[13]+a[9]*b[14]+a[13]*b[15],a[2]*b[12]+a[6]*b[13]+a[10]*b[14]+a[14]*b[15],a[3]*b[12]+a[7]*b[13]+a[11]*b[14]+a[15]*b[15]]}function e(a){var b=a.rad||0;return((a.deg||0)/360+(a.grad||0)/400+(a.turn||0))*(2*Math.PI)+b}function f(a){switch(a.t){case\"rotatex\":var b=e(a.d[0]);return[1,0,0,0,0,Math.cos(b),Math.sin(b),0,0,-Math.sin(b),Math.cos(b),0,0,0,0,1];case\"rotatey\":var b=e(a.d[0]);return[Math.cos(b),0,-Math.sin(b),0,0,1,0,0,Math.sin(b),0,Math.cos(b),0,0,0,0,1];case\"rotate\":case\"rotatez\":var b=e(a.d[0]);return[Math.cos(b),Math.sin(b),0,0,-Math.sin(b),Math.cos(b),0,0,0,0,1,0,0,0,0,1];case\"rotate3d\":var c=a.d[0],d=a.d[1],f=a.d[2],b=e(a.d[3]),g=c*c+d*d+f*f;if(0===g)c=1,d=0,f=0;else if(1!==g){var h=Math.sqrt(g);c/=h,d/=h,f/=h}var i=Math.sin(b/2),j=i*Math.cos(b/2),k=i*i;return[1-2*(d*d+f*f)*k,2*(c*d*k+f*j),2*(c*f*k-d*j),0,2*(c*d*k-f*j),1-2*(c*c+f*f)*k,2*(d*f*k+c*j),0,2*(c*f*k+d*j),2*(d*f*k-c*j),1-2*(c*c+d*d)*k,0,0,0,0,1];case\"scale\":return[a.d[0],0,0,0,0,a.d[1],0,0,0,0,1,0,0,0,0,1];case\"scalex\":return[a.d[0],0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];case\"scaley\":return[1,0,0,0,0,a.d[0],0,0,0,0,1,0,0,0,0,1];case\"scalez\":return[1,0,0,0,0,1,0,0,0,0,a.d[0],0,0,0,0,1];case\"scale3d\":return[a.d[0],0,0,0,0,a.d[1],0,0,0,0,a.d[2],0,0,0,0,1];case\"skew\":var l=e(a.d[0]),m=e(a.d[1]);return[1,Math.tan(m),0,0,Math.tan(l),1,0,0,0,0,1,0,0,0,0,1];case\"skewx\":var b=e(a.d[0]);return[1,0,0,0,Math.tan(b),1,0,0,0,0,1,0,0,0,0,1];case\"skewy\":var b=e(a.d[0]);return[1,Math.tan(b),0,0,0,1,0,0,0,0,1,0,0,0,0,1];case\"translate\":var c=a.d[0].px||0,d=a.d[1].px||0;return[1,0,0,0,0,1,0,0,0,0,1,0,c,d,0,1];case\"translatex\":var c=a.d[0].px||0;return[1,0,0,0,0,1,0,0,0,0,1,0,c,0,0,1];case\"translatey\":var d=a.d[0].px||0;return[1,0,0,0,0,1,0,0,0,0,1,0,0,d,0,1];case\"translatez\":var f=a.d[0].px||0;return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,f,1];case\"translate3d\":var c=a.d[0].px||0,d=a.d[1].px||0,f=a.d[2].px||0;return[1,0,0,0,0,1,0,0,0,0,1,0,c,d,f,1];case\"perspective\":return[1,0,0,0,0,1,0,0,0,0,1,a.d[0].px?-1/a.d[0].px:0,0,0,0,1];case\"matrix\":return[a.d[0],a.d[1],0,0,a.d[2],a.d[3],0,0,0,0,1,0,a.d[4],a.d[5],0,1];case\"matrix3d\":return a.d}}function g(a){return 0===a.length?[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]:a.map(f).reduce(d)}function h(a){return[i(g(a))]}var i=function(){function a(a){return a[0][0]*a[1][1]*a[2][2]+a[1][0]*a[2][1]*a[0][2]+a[2][0]*a[0][1]*a[1][2]-a[0][2]*a[1][1]*a[2][0]-a[1][2]*a[2][1]*a[0][0]-a[2][2]*a[0][1]*a[1][0]}function b(b){for(var c=1/a(b),d=b[0][0],e=b[0][1],f=b[0][2],g=b[1][0],h=b[1][1],i=b[1][2],j=b[2][0],k=b[2][1],l=b[2][2],m=[[(h*l-i*k)*c,(f*k-e*l)*c,(e*i-f*h)*c,0],[(i*j-g*l)*c,(d*l-f*j)*c,(f*g-d*i)*c,0],[(g*k-h*j)*c,(j*e-d*k)*c,(d*h-e*g)*c,0]],n=[],o=0;o<3;o++){for(var p=0,q=0;q<3;q++)p+=b[3][q]*m[q][o];n.push(p)}return n.push(1),m.push(n),m}function d(a){return[[a[0][0],a[1][0],a[2][0],a[3][0]],[a[0][1],a[1][1],a[2][1],a[3][1]],[a[0][2],a[1][2],a[2][2],a[3][2]],[a[0][3],a[1][3],a[2][3],a[3][3]]]}function e(a,b){for(var c=[],d=0;d<4;d++){for(var e=0,f=0;f<4;f++)e+=a[f]*b[f][d];c.push(e)}return c}function f(a){var b=g(a);return[a[0]/b,a[1]/b,a[2]/b]}function g(a){return Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2])}function h(a,b,c,d){return[c*a[0]+d*b[0],c*a[1]+d*b[1],c*a[2]+d*b[2]]}function i(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function j(j){var k=[j.slice(0,4),j.slice(4,8),j.slice(8,12),j.slice(12,16)];if(1!==k[3][3])return null;for(var l=[],m=0;m<4;m++)l.push(k[m].slice());for(var m=0;m<3;m++)l[m][3]=0;if(0===a(l))return null;var n,o=[];k[0][3]||k[1][3]||k[2][3]?(o.push(k[0][3]),o.push(k[1][3]),o.push(k[2][3]),o.push(k[3][3]),n=e(o,d(b(l)))):n=[0,0,0,1];var p=k[3].slice(0,3),q=[];q.push(k[0].slice(0,3));var r=[];r.push(g(q[0])),q[0]=f(q[0]);var s=[];q.push(k[1].slice(0,3)),s.push(c(q[0],q[1])),q[1]=h(q[1],q[0],1,-s[0]),r.push(g(q[1])),q[1]=f(q[1]),s[0]/=r[1],q.push(k[2].slice(0,3)),s.push(c(q[0],q[2])),q[2]=h(q[2],q[0],1,-s[1]),s.push(c(q[1],q[2])),q[2]=h(q[2],q[1],1,-s[2]),r.push(g(q[2])),q[2]=f(q[2]),s[1]/=r[2],s[2]/=r[2];var t=i(q[1],q[2]);if(c(q[0],t)<0)for(var m=0;m<3;m++)r[m]*=-1,q[m][0]*=-1,q[m][1]*=-1,q[m][2]*=-1;var u,v,w=q[0][0]+q[1][1]+q[2][2]+1;return w>1e-4?(u=.5/Math.sqrt(w),v=[(q[2][1]-q[1][2])*u,(q[0][2]-q[2][0])*u,(q[1][0]-q[0][1])*u,.25/u]):q[0][0]>q[1][1]&&q[0][0]>q[2][2]?(u=2*Math.sqrt(1+q[0][0]-q[1][1]-q[2][2]),v=[.25*u,(q[0][1]+q[1][0])/u,(q[0][2]+q[2][0])/u,(q[2][1]-q[1][2])/u]):q[1][1]>q[2][2]?(u=2*Math.sqrt(1+q[1][1]-q[0][0]-q[2][2]),v=[(q[0][1]+q[1][0])/u,.25*u,(q[1][2]+q[2][1])/u,(q[0][2]-q[2][0])/u]):(u=2*Math.sqrt(1+q[2][2]-q[0][0]-q[1][1]),v=[(q[0][2]+q[2][0])/u,(q[1][2]+q[2][1])/u,.25*u,(q[1][0]-q[0][1])/u]),[p,r,s,v,n]}return j}();a.dot=c,a.makeMatrixDecomposition=h,a.transformListToMatrix=g}(b),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\\s*/,\"\");var c=a(b);if(c)return[c[0],c[1].replace(/^\\s*/,\"\")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],!(g=b(d,e))||\"\"==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d<b.length&&(!/\\s|,/.test(b[d])||0!=c);d++)if(\"(\"==b[d])c++;else if(\")\"==b[d]&&(c--,0==c&&d++,c<=0))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){return a(c)||[b,c]}}function i(b,c){for(var d=[],e=0;e<b.length;e++){var f=a.consumeTrimmed(b[e],c);if(!f||\"\"==f[0])return;void 0!==f[0]&&d.push(f[0]),c=f[1]}if(\"\"==c)return d}function j(a,b,c,d,e){for(var g=[],h=[],i=[],j=f(d.length,e.length),k=0;k<j;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h<c.length;h++)if(\"function\"==typeof c[h]){var i=c[h](a[g],b[g++]);d.push(i[0]),e.push(i[1]),f.push(i[2])}else!function(a){d.push(!1),e.push(!1),f.push(function(){return c[a]})}(h);return[d,e,function(a){for(var b=\"\",c=0;c<a.length;c++)b+=f[c](a[c]);return b}]}a.consumeToken=b,a.consumeTrimmed=c,a.consumeRepeated=d,a.consumeParenthesised=e,a.ignore=g,a.optional=h,a.consumeList=i,a.mergeNestedRepeated=j.bind(null,null),a.mergeWrappedNestedRepeated=j,a.mergeList=k}(b),function(a){function b(b){function c(b){var c=a.consumeToken(/^inset/i,b);return c?(d.inset=!0,c):(c=a.consumeLengthOrPercent(b))?(d.lengths.push(c[0]),c):(c=a.consumeColor(b),c?(d.color=c[0],c):void 0)}var d={inset:!1,lengths:[],color:null},e=a.consumeRepeated(c,/^/,b);if(e&&e[0].length)return[d,e[1]]}function c(c){var d=a.consumeRepeated(b,/^,/,c);if(d&&\"\"==d[1])return d[0]}function d(b,c){for(;b.lengths.length<Math.max(b.lengths.length,c.lengths.length);)b.lengths.push({px:0});for(;c.lengths.length<Math.max(b.lengths.length,c.lengths.length);)c.lengths.push({px:0});if(b.inset==c.inset&&!!b.color==!!c.color){for(var d,e=[],f=[[],0],g=[[],0],h=0;h<b.lengths.length;h++){var i=a.mergeDimensions(b.lengths[h],c.lengths[h],2==h);f[0].push(i[0]),g[0].push(i[1]),e.push(i[2])}if(b.color&&c.color){var j=a.mergeColors(b.color,c.color);f[1]=j[0],g[1]=j[1],d=j[2]}return[f,g,function(a){for(var c=b.inset?\"inset \":\" \",f=0;f<e.length;f++)c+=e[f](a[0][f])+\" \";return d&&(c+=d(a[1])),c}]}}function e(b,c,d,e){function f(a){return{inset:a,color:[0,0,0,0],lengths:[{px:0},{px:0},{px:0},{px:0}]}}for(var g=[],h=[],i=0;i<d.length||i<e.length;i++){var j=d[i]||f(e[i].inset),k=e[i]||f(d[i].inset);g.push(j),h.push(k)}return a.mergeNestedRepeated(b,c,g,h)}var f=e.bind(null,d,\", \");a.addPropertiesHandler(c,f,[\"box-shadow\",\"text-shadow\"])}(b),function(a,b){function c(a){return a.toFixed(3).replace(/0+$/,\"\").replace(/\\.$/,\"\")}function d(a,b,c){return Math.min(b,Math.max(a,c))}function e(a){if(/^\\s*[-+]?(\\d*\\.)?\\d+\\s*$/.test(a))return Number(a)}function f(a,b){return[a,b,c]}function g(a,b){if(0!=a)return i(0,1/0)(a,b)}function h(a,b){return[a,b,function(a){return Math.round(d(1,1/0,a))}]}function i(a,b){return function(e,f){return[e,f,function(e){return c(d(a,b,e))}]}}function j(a){var b=a.trim().split(/\\s*[\\s,]\\s*/);if(0!==b.length){for(var c=[],d=0;d<b.length;d++){var f=e(b[d]);if(void 0===f)return;c.push(f)}return c}}function k(a,b){if(a.length==b.length)return[a,b,function(a){return a.map(c).join(\" \")}]}function l(a,b){return[a,b,Math.round]}a.clamp=d,a.addPropertiesHandler(j,k,[\"stroke-dasharray\"]),a.addPropertiesHandler(e,i(0,1/0),[\"border-image-width\",\"line-height\"]),a.addPropertiesHandler(e,i(0,1),[\"opacity\",\"shape-image-threshold\"]),a.addPropertiesHandler(e,g,[\"flex-grow\",\"flex-shrink\"]),a.addPropertiesHandler(e,h,[\"orphans\",\"widows\"]),a.addPropertiesHandler(e,l,[\"z-index\"]),a.parseNumber=e,a.parseNumberList=j,a.mergeNumbers=f,a.numberToString=c}(b),function(a,b){function c(a,b){if(\"visible\"==a||\"visible\"==b)return[0,1,function(c){return c<=0?a:c>=1?b:\"visible\"}]}a.addPropertiesHandler(String,c,[\"visibility\"])}(b),function(a,b){function c(a){a=a.trim(),f.fillStyle=\"#000\",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle=\"#fff\",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),\"rgba(\"+b.join(\",\")+\")\"}]}var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=e.height=1;var f=e.getContext(\"2d\");a.addPropertiesHandler(c,d,[\"background-color\",\"border-bottom-color\",\"border-left-color\",\"border-right-color\",\"border-top-color\",\"color\",\"fill\",\"flood-color\",\"lighting-color\",\"outline-color\",\"stop-color\",\"stroke\",\"text-decoration-color\"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(b),function(a,b){function c(a){function b(){var b=h.exec(a);g=b?b[0]:void 0}function c(){var a=Number(g);return b(),a}function d(){if(\"(\"!==g)return c();b();var a=f();return\")\"!==g?NaN:(b(),a)}function e(){for(var a=d();\"*\"===g||\"/\"===g;){var c=g;b();var e=d();\"*\"===c?a*=e:a/=e}return a}function f(){for(var a=e();\"+\"===g||\"-\"===g;){var c=g;b();var d=e();\"+\"===c?a+=d:a-=d}return a}var g,h=/([\\+\\-\\w\\.]+|[\\(\\)\\*\\/])/g;return b(),f()}function d(a,b){if(\"0\"==(b=b.trim().toLowerCase())&&\"px\".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\\(/g,\"(\");var d={};b=b.replace(a,function(a){return d[a]=null,\"U\"+a});for(var e=\"U(\"+a.source+\")\",f=b.replace(/[-+]?(\\d*\\.)?\\d+([Ee][-+]?\\d+)?/g,\"N\").replace(new RegExp(\"N\"+e,\"g\"),\"D\").replace(/\\s[+-]\\s/g,\"O\").replace(/\\s/g,\"\"),g=[/N\\*(D)/g,/(N|D)[*\\/]N/g,/(N|D)O\\1/g,/\\((N|D)\\)/g],h=0;h<g.length;)g[h].test(f)?(f=f.replace(g[h],\"$1\"),h=0):h++;if(\"D\"==f){for(var i in d){var j=c(b.replace(new RegExp(\"U\"+i,\"g\"),\"\").replace(new RegExp(e,\"g\"),\"*0\"));if(!isFinite(j))return;d[i]=j}return d}}}function e(a,b){return f(a,b,!0)}function f(b,c,d){var e,f=[];for(e in b)f.push(e);for(e in c)f.indexOf(e)<0&&f.push(e);return b=f.map(function(a){return b[a]||0}),c=f.map(function(a){return c[a]||0}),[b,c,function(b){var c=b.map(function(c,e){return 1==b.length&&d&&(c=Math.max(c,0)),a.numberToString(c)+f[e]}).join(\" + \");return b.length>1?\"calc(\"+c+\")\":c}]}var g=\"px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc\",h=d.bind(null,new RegExp(g,\"g\")),i=d.bind(null,new RegExp(g+\"|%\",\"g\")),j=d.bind(null,/deg|rad|grad|turn/g);a.parseLength=h,a.parseLengthOrPercent=i,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,i),a.parseAngle=j,a.mergeDimensions=f;var k=a.consumeParenthesised.bind(null,h),l=a.consumeRepeated.bind(void 0,k,/^/),m=a.consumeRepeated.bind(void 0,l,/^,/);a.consumeSizePairList=m;var n=function(a){var b=m(a);if(b&&\"\"==b[1])return b[0]},o=a.mergeNestedRepeated.bind(void 0,e,\" \"),p=a.mergeNestedRepeated.bind(void 0,o,\",\");a.mergeNonNegativeSizePair=o,a.addPropertiesHandler(n,p,[\"background-size\"]),a.addPropertiesHandler(i,e,[\"border-bottom-width\",\"border-image-width\",\"border-left-width\",\"border-right-width\",\"border-top-width\",\"flex-basis\",\"font-size\",\"height\",\"line-height\",\"max-height\",\"max-width\",\"outline-width\",\"width\"]),a.addPropertiesHandler(i,f,[\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"bottom\",\"left\",\"letter-spacing\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"min-height\",\"min-width\",\"outline-offset\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"perspective\",\"right\",\"shape-margin\",\"stroke-dashoffset\",\"text-indent\",\"top\",\"vertical-align\",\"word-spacing\"])}(b),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return\"auto\"==b||\"auto\"==c?[!0,!1,function(d){var e=d?b:c;if(\"auto\"==e)return\"auto\";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return\"rect(\"+a+\")\"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,\", \");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,[\"clip\"])}(b),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(\"none\"==(b=b.toLowerCase().trim()))return[];for(var c,d=/\\s*(\\w+)\\(([^)]*)\\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(\",\"),j=h[0];if(j.length<i.length)return;for(var k=[],o=0;o<j.length;o++){var p,q=i[o],r=j[o];if(void 0===(p=q?{A:function(b){return\"0\"==b.trim()?m:a.parseAngle(b)},N:a.parseNumber,T:a.parseLengthOrPercent,L:a.parseLength}[r.toUpperCase()](q):{a:m,n:k[0],t:l}[r]))return;k.push(p)}if(e.push({t:g,d:k}),d.lastIndex==b.length)return e}}function f(a){return a.toFixed(6).replace(\".000000\",\"\")}function g(b,c){if(b.decompositionPair!==c){b.decompositionPair=c;var d=a.makeMatrixDecomposition(b)}if(c.decompositionPair!==b){c.decompositionPair=b;var e=a.makeMatrixDecomposition(c)}return null==d[0]||null==e[0]?[[!1],[!0],function(a){return a?c[0].d:b[0].d}]:(d[0].push(0),e[0].push(1),[d,e,function(b){var c=a.quat(d[0][3],e[0][3],b[5]);return a.composeMatrix(b[0],b[1],b[2],c,b[4]).map(f).join(\",\")}])}function h(a){return a.replace(/[xy]/,\"\")}function i(a){return a.replace(/(x|y|z|3d)?$/,\"3d\")}function j(b,c){var d=a.makeMatrixDecomposition&&!0,e=!1;if(!b.length||!c.length){b.length||(e=!0,b=c,c=[]);for(var f=0;f<b.length;f++){var j=b[f].t,k=b[f].d,l=\"scale\"==j.substr(0,5)?1:0;c.push({t:j,d:k.map(function(a){if(\"number\"==typeof a)return l;var b={};for(var c in a)b[c]=l;return b})})}}var m=function(a,b){return\"perspective\"==a&&\"perspective\"==b||(\"matrix\"==a||\"matrix3d\"==a)&&(\"matrix\"==b||\"matrix3d\"==b)},o=[],p=[],q=[];if(b.length!=c.length){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[[\"matrix\",[r[2]]]]}else for(var f=0;f<b.length;f++){var j,s=b[f].t,t=c[f].t,u=b[f].d,v=c[f].d,w=n[s],x=n[t];if(m(s,t)){if(!d)return;var r=g([b[f]],[c[f]]);o.push(r[0]),p.push(r[1]),q.push([\"matrix\",[r[2]]])}else{if(s==t)j=s;else if(w[2]&&x[2]&&h(s)==h(t))j=h(s),u=w[2](u),v=x[2](v);else{if(!w[1]||!x[1]||i(s)!=i(t)){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[[\"matrix\",[r[2]]]];break}j=i(s),u=w[1](u),v=x[1](v)}for(var y=[],z=[],A=[],B=0;B<u.length;B++){var C=\"number\"==typeof u[B]?a.mergeNumbers:a.mergeDimensions,r=C(u[B],v[B]);y[B]=r[0],z[B]=r[1],A.push(r[2])}o.push(y),p.push(z),q.push([j,A])}}if(e){var D=o;o=p,p=D}return[o,p,function(a){return a.map(function(a,b){var c=a.map(function(a,c){return q[b][1][c](a)}).join(\",\");return\"matrix\"==q[b][0]&&16==c.split(\",\").length&&(q[b][0]=\"matrix3d\"),q[b][0]+\"(\"+c+\")\"}).join(\" \")}]}var k=null,l={px:0},m={deg:0},n={matrix:[\"NNNNNN\",[k,k,0,0,k,k,0,0,0,0,1,0,k,k,0,1],d],matrix3d:[\"NNNNNNNNNNNNNNNN\",d],rotate:[\"A\"],rotatex:[\"A\"],rotatey:[\"A\"],rotatez:[\"A\"],rotate3d:[\"NNNA\"],perspective:[\"L\"],scale:[\"Nn\",c([k,k,1]),d],scalex:[\"N\",c([k,1,1]),c([k,1])],scaley:[\"N\",c([1,k,1]),c([1,k])],scalez:[\"N\",c([1,1,k])],scale3d:[\"NNN\",d],skew:[\"Aa\",null,d],skewx:[\"A\",null,c([k,m])],skewy:[\"A\",null,c([m,k])],translate:[\"Tt\",c([k,k,l]),d],translatex:[\"T\",c([k,l,l]),c([k,l])],translatey:[\"T\",c([l,k,l]),c([l,k])],translatez:[\"L\",c([l,l,k])],translate3d:[\"TTL\",d]};a.addPropertiesHandler(e,j,[\"transform\"]),a.transformToSvgMatrix=function(b){var c=a.transformListToMatrix(e(b));return\"matrix(\"+f(c[0])+\" \"+f(c[1])+\" \"+f(c[4])+\" \"+f(c[5])+\" \"+f(c[12])+\" \"+f(c[13])+\")\"}}(b),function(a){function b(a){var b=Number(a);if(!(isNaN(b)||b<100||b>900||b%100!=0))return b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?\"normal\":700===b?\"bold\":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,[\"font-weight\"])}(b),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&\"\"==e[1]){var f=e[0];if(f[0]=f[0]||\"center\",f[1]=f[1]||\"center\",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return\"object\"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{\"%\":50},{\"%\":50}],i=0,j=!1,k=0;k<f.length;k++){var l=f[k];\"string\"==typeof l?(j=/bottom|right/.test(l),i={left:0,right:0,center:i,top:1,bottom:1}[l],h[i]=g[l],\"center\"==l&&i++):(j&&(l=b(l),l[\"%\"]=(l[\"%\"]||0)+100),h[i]=l,i++,j=!1)}return[h,e[1]]}}function f(b){var c=a.consumeRepeated(e,/^,/,b);if(c&&\"\"==c[1])return c[0]}var g={left:{\"%\":0},center:{\"%\":50},right:{\"%\":100},top:{\"%\":0},bottom:{\"%\":100}},h=a.mergeNestedRepeated.bind(null,a.mergeDimensions,\" \");a.addPropertiesHandler(d.bind(null,3),h,[\"transform-origin\"]),a.addPropertiesHandler(d.bind(null,2),h,[\"perspective-origin\"]),a.consumePosition=e,a.mergeOffsetList=h;var i=a.mergeNestedRepeated.bind(null,h,\", \");a.addPropertiesHandler(f,i,[\"background-position\",\"object-position\"])}(b),function(a){function b(b){var c=a.consumeToken(/^circle/,b);if(c&&c[0])return[\"circle\"].concat(a.consumeList([a.ignore(a.consumeToken.bind(void 0,/^\\(/)),d,a.ignore(a.consumeToken.bind(void 0,/^at/)),a.consumePosition,a.ignore(a.consumeToken.bind(void 0,/^\\)/))],c[1]));var f=a.consumeToken(/^ellipse/,b);if(f&&f[0])return[\"ellipse\"].concat(a.consumeList([a.ignore(a.consumeToken.bind(void 0,/^\\(/)),e,a.ignore(a.consumeToken.bind(void 0,/^at/)),a.consumePosition,a.ignore(a.consumeToken.bind(void 0,/^\\)/))],f[1]));var g=a.consumeToken(/^polygon/,b);return g&&g[0]?[\"polygon\"].concat(a.consumeList([a.ignore(a.consumeToken.bind(void 0,/^\\(/)),a.optional(a.consumeToken.bind(void 0,/^nonzero\\s*,|^evenodd\\s*,/),\"nonzero,\"),a.consumeSizePairList,a.ignore(a.consumeToken.bind(void 0,/^\\)/))],g[1])):void 0}function c(b,c){if(b[0]===c[0])return\"circle\"==b[0]?a.mergeList(b.slice(1),c.slice(1),[\"circle(\",a.mergeDimensions,\" at \",a.mergeOffsetList,\")\"]):\"ellipse\"==b[0]?a.mergeList(b.slice(1),c.slice(1),[\"ellipse(\",a.mergeNonNegativeSizePair,\" at \",a.mergeOffsetList,\")\"]):\"polygon\"==b[0]&&b[1]==c[1]?a.mergeList(b.slice(2),c.slice(2),[\"polygon(\",b[1],g,\")\"]):void 0}var d=a.consumeParenthesised.bind(null,a.parseLengthOrPercent),e=a.consumeRepeated.bind(void 0,d,/^/),f=a.mergeNestedRepeated.bind(void 0,a.mergeDimensions,\" \"),g=a.mergeNestedRepeated.bind(void 0,f,\",\");a.addPropertiesHandler(b,c,[\"shape-outside\"])}(b),function(a,b){function c(a,b){b.concat([a]).forEach(function(b){b in document.documentElement.style&&(d[a]=b),e[b]=a})}var d={},e={};c(\"transform\",[\"webkitTransform\",\"msTransform\"]),c(\"transformOrigin\",[\"webkitTransformOrigin\"]),c(\"perspective\",[\"webkitPerspective\"]),c(\"perspectiveOrigin\",[\"webkitPerspectiveOrigin\"]),a.propertyName=function(a){return d[a]||a},a.unprefixedPropertyName=function(a){return e[a]||a}}(b)}(),function(){if(void 0===document.createElement(\"div\").animate([]).oncancel){var a;if(window.performance&&performance.now)var a=function(){return performance.now()};else var a=function(){return Date.now()};var b=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type=\"cancel\",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},c=window.Element.prototype.animate;window.Element.prototype.animate=function(d,e){var f=c.call(this,d,e);f._cancelHandlers=[],f.oncancel=null;var g=f.cancel;f.cancel=function(){g.call(this);var c=new b(this,null,a()),d=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){d.forEach(function(a){a.call(c.target,c)})},0)};var h=f.addEventListener;f.addEventListener=function(a,b){\"function\"==typeof b&&\"cancel\"==a?this._cancelHandlers.push(b):h.call(this,a,b)};var i=f.removeEventListener;return f.removeEventListener=function(a,b){if(\"cancel\"==a){var c=this._cancelHandlers.indexOf(b);c>=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue(\"opacity\"),f=\"0\"==e?\"1\":\"0\";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue(\"opacity\")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(a)}();\n"],"x_google_ignoreList":[1,2,3,4,5]}