mirror of
https://github.com/nextcloud/server.git
synced 2026-11-02 20:11:47 +01:00
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
1 line
1.5 MiB
Plaintext
1 line
1.5 MiB
Plaintext
{"version":3,"mappings":"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","names":["hookCallback","hooks","setHookCallback","callback","isArray","input","isObject","hasOwnProp","a","b","isObjectEmpty","obj","k","isUndefined","isNumber","isDate","map","arr","fn","res","i","arrLen","extend","createUTC","format","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","m","some","fun","t","len","isValid$2","flags","parsedParts","isNowValid","createInvalid$1","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","Moment","config","isMoment","warn","msg","deprecate","firstTime","args","arg","key","argLen","deprecations","deprecateSimple","name","isFunction","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","length","mom","output","formatMoment","expandFormat","cacheKey","replaceLongDateFormatTokens","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","s","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","value","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get$2","d","isUTC","month","date","stringGet","stringSet","prioritized","prioritizedLen","mod$1","n","x","indexOf","o","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","monthsParseProperties","clearMonthsParseCache","localeMonths","localeMonthsShort","handleStrictParse$1","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","week","weekday","weekdayEnd","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","weekdaysParseProperties","clearWeekdaysParseCache","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","set","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","calendar$1","now","defaultLongDateFormat","longDateFormat","formatUpper","formatCache","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTimeWithoutPostformat","withoutSuffix","string","isFuture","relativeTime$1","pastFutureWithoutPostformat","diff","pastFuture","createDate","h","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYearFromDayOfYear","resWeek","weeksInYear","weekOfYear","weekOfYearFromDate","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","normalizedName","getSetGlobalLocale","values","data","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","l","match","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","c","currentDateArray","forWeek","hadWeekContext","weekContext","currentDateNow","getDefaultDateParts","useWeekDefaults","nowValue","createLocal","configFromArray","currentDate","expectedWeekday","yearToUse","dateIsDefaulted","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","defaultDatePartsNow","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract$1","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add$1","subtract$1","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","item","isCalendarSpec","getCalendarFormat","myMoment","calendar","time","formats","sod","clone$1","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString$1","keepOffset","utc","inspect","zone","prefix","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf$1","unix","toDate","toArray","toObject","toJSON","isValid","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto$2","createUnix","createInZone","preParsePostFormat","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs$1","addSubtract","add","subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf","clone","get","makeGetter","round","thresholds","substituteTimeAgo","relativeTime","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs","toISOString","total","totalSign","ymSign","daysSign","hmsSign","proto","props","__props","actions","computed","jsActions","getEnabledContactsMenuActions","preloadedUserStatus","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","NcAvatar","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","_hoisted_5","_hoisted_6","_createBlock","NcActions","_Fragment","_renderList","action","idx","NcActionLink","NcActionText","NcActionButton","$event","NcIconSvgWrapper","_createTextVNode","userTeams","storage","getBuilder","user","getCurrentUser","contactsAppURL","generateUrl","contactsAppMgmtURL","contactsMenuInput","useTemplateRef","ref","contactsAppEnabled","contacts","loadingText","hasError","searchTerm","teams","selectedTeam","selectedTeamName","team","watch","getContacts","onOpened","getTeams","axios","error","logger","onInputDebounced","debounce","onReset","focusInput","nextTick","NcHeaderMenu","_cache","mdiContacts","_hoisted_2","mdiAccountGroupOutline","NcTextField","NcButton","NcEmptyContent","mdiMagnify","NcLoadingIcon","contact","ContactMenuEntry","_hoisted_7","_hoisted_8","ContactsMenuService","setUp","mountPoint","mountInPlace","createApp","ContactsMenu","iconStyle","indicatorStyle","_renderSlot","_ctx","mdiPlus","unreadLabel","_resolveDynamicComponent","$emit","AppIcon","emit","__emit","hasLink","entry","onClick","mouseEvent","emitOnEventBus","AppMenuItem","AppActionIcon","ACTIONS_PER_ROW","overflowEntry","focusedIndex","overflowFocusedIndex","overflowOpened","rowItems","overflowItems","overflowTrigger","setItem","items","hasOverflow","rowActions","overflowActions","rowLength","isOpen","trySubmenuFocus","returnFocusTarget","retries","onRowKeydown","event","nextIndex","focusRowItem","onSubmenuKeydown","current","orientation","forward","backward","activate","onOverflowActionClick","AppMenuAction","NcPopover","mdiDotsHorizontal","PROFILE_ID","APP_MANAGEMENT_ID","HOVER_OPEN_DELAY","HOVER_CLOSE_DELAY","HOVER_CLICK_GRACE","SETTINGS_ACTION_IDS","SETTINGS_SECTION_IDS","moreAppsEntry","imagePath","appStoreEntry","popoverSkidding","isRTL","navigationActions","loadState","settingsList","appStoreLinkShown","isAdmin","root","grid","appList","opened","openedFrom","hoverOpen","suppressCloseClick","openTimer","closeTimer","suppressClickTimer","clicks","clickTimestamp","gridItem","popoverAttrs","autoHideCheck","currentApp","app","isSettingsSection","displayName","currentAppIcon","currentAppIconStyle","currentAppLabel","gridItems","tail","activeGridIndex","tryRecomputeGridMaxHeight","clearSuppressClickTimer","onMounted","subscribe","setApps","onBeforeUnmount","clearOpenTimer","clearCloseTimer","unsubscribe","__expose","setNavigationCounter","onPopoverAfterHide","onTriggerClick","source","styleTag","onTriggerPointerEnter","canHoverOpen","onPointerLeave","scheduleClose","onPopoverPointerEnter","id","counter","apps","recomputeGridMaxHeight","VISIBLE_CELLS","cells","firstHidden","firstCell","sumOfFirstRows","baseline","onGridKeydown","cols","_mergeProps","_normalizeClass","mdiDotsGrid","mdiCog","AppMenuActions","container","appMenu","AppMenu","productName","buttons","isOneTimeToken","qrUrl","password","path","server","getBaseUrl","expirationTimestamp","expireTimeout","onClosing","timeCountdown","useFormatRelativeTime","NcDialog","QR","addPasswordConfirmationInterceptors","canCreateAppToken","getCapabilities","profileEnabled","handleProfileEnabledUpdate","handleDisplayNameUpdate","handleQrCodeClick","PwdConfirmationMode","spawnDialog","AccountQrLoginDialog","enabled","NcListItem","mdiQrcodeScan","loadInitialUserStatus","userStatus","state","status","icon","message","statusLabels","getAllStatusOptions","type","label","currentUser","currentDisplayName","currentUserId","settingsNavEntries","profileEntry","otherEntries","initialUserStatus","showUserStatus","avatarDescription","translatedUserStatus","handleUserStatusUpdated","AccountMenuProfileEntry","AccountMenuEntry","AccountMenu","autoLogout","keepSessionAlive","sessionLifetime","initSessionHeartBeat","registerAutoLogout","interval","startPolling","poll","getInterval","fetchRequestToken","lastActive","intervalId","logoutCheck","timeout","logoutUrl","getRequestToken","unsecuredCopyToClipboard","text","textArea","textAreaContent","initFallbackClipboardAPI","global","factory","module","this","require","require$$0","moment","pluralForm$2","plurals$2","pluralize$2","f","str","months$b","minute","symbolMap$i","pluralForm$1","plurals$1","pluralize$1","months$a","symbolMap$h","numberMap$h","symbolMap$g","numberMap$g","symbolMap$f","numberMap$f","pluralForm","plurals","pluralize","months$9","suffixes$5","plural$6","word","num","forms","relativeTimeWithPlural$4","lastDigit","last2Digits","symbolMap$e","numberMap$e","symbolMap$d","numberMap$d","symbolMap$c","numberMap$c","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsParse$g","monthsRegex$c","monthsStrictRegex$1","monthsShortStrictRegex$1","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","processRelativeTime$a","translate$a","months$8","monthsShort$8","monthsParse$f","monthsRegex$b","plural$5","translate$9","affix","lookup","monthsParse$e","monthsRegex$a","processRelativeTime$9","monthsParse$d","monthsRegex$9","processRelativeTime$8","monthsParse$c","monthsRegex$8","processRelativeTime$7","months$7","weekdays$2","momentToFormat","monthsShortDot$3","monthsShort$7","monthsParse$b","monthsRegex$7","monthsShortDot$2","monthsShort$6","monthsParse$a","monthsRegex$6","monthsShortDot$1","monthsShort$5","monthsParse$9","monthsRegex$5","monthsShortDot","monthsShort$4","monthsParse$8","monthsRegex$4","processRelativeTime$6","symbolMap$b","numberMap$b","numbersPast","numbersFuture","translate$8","verbalNumber","monthsStrictRegex","monthsShortStrictRegex","monthsRegex$3","monthsParse$7","monthsShortWithDots$2","monthsShortWithoutDots$2","months$6","monthsShort$3","weekdays$1","weekdaysShort$1","weekdaysMin$1","months$5","monthsShort$2","weekdaysShort","weekdaysMin","processRelativeTime$5","processRelativeTime$4","symbolMap$a","numberMap$a","symbolMap$9","numberMap$9","monthsParse$6","shortMonthsParse$1","translate$7","weekEndings","translate$6","monthsParse$5","longMonthsParse","shortMonthsParse","plural$4","translate$5","$0","$1","$2","suffixes$4","symbolMap$8","numberMap$8","symbolMap$7","numberMap$7","isUpper","processRelativeTime$3","ezafeNumSuffix","ll","p","symbolMap$6","numberMap$6","months$4","suffixes$3","processRelativeTime$2","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","firstDigit","units$1","translateSeconds","translateSingular","special","translate$4","relativeTimeWithPlural$3","relativeTimeWithSingular","relativeSeconds","translator$2","wordKey","lastWeekDays","translate$3","symbolMap$5","numberMap$5","relativeTimeMr","symbolMap$4","numberMap$4","symbolMap$3","numberMap$3","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$4","monthsRegex$2","monthsShortWithDots","monthsShortWithoutDots","monthsParse$3","monthsRegex$1","symbolMap$2","numberMap$2","monthsNominative","monthsSubjective","monthsParse$2","plural$3","translate$2","symbolMap$1","numberMap$1","months$3","monthsShort$1","monthsParse$1","relativeTimeWithPlural$2","plural$2","relativeTimeWithPlural$1","monthsParse","months$2","days$1","months$1","monthsShort","plural$1","translate$1","processRelativeTime$1","translator$1","translator","relativeTimeWithSuffix","symbolMap","numberMap","suffixes$2","suffixes$1","numbersNouns","translateFuture","translatePast","translate","numberNoun","numberAsNoun","hundred","ten","one","suffixes","processRelativeTime","plural","relativeTimeWithPlural","weekdaysCaseReplace","nounCase","processHoursFunction","localeAliases","initCore","interceptRequests","setUpMainMenu","setUpUserMenu","setUpContactsMenu","isUserAdmin","appConfig","appswebroots","realGetCapabilities","coreApps","menuSpeed","PERMISSION_NONE","PERMISSION_CREATE","PERMISSION_READ","PERMISSION_UPDATE","PERMISSION_DELETE","PERMISSION_SHARE","PERMISSION_ALL","TAG_FAVORITE","rawUid","debug","IconMove","Dialogs","title","modal","DialogBuilder","defineAsyncComponent","__vitePreload","multiselect","mimetype","_modal","FilePickerType","options","legacyCallback","getPath","node","nodes","nodeToLegacyFile","builder","getFilePickerBuilder","button","target","basename","IconCopy","content","dialogType","allowHtml","dialog","buttonList","L10n","loadTranslations","register","unregister","translatePlural","iconCache","getIconUrl","mimeType","gotIcon","getRootUrl","getMimeTypeIcon","files","clearIconCache","selector","el","animation","response","fadeOut","PasswordConfirmation","isPasswordConfirmationRequired","rejectCallback","confirmPassword","Plugins","targetName","plugin","plugins","targetObject","parse","queryString","params","build","linkToRemoteBase","service","realGetRootUrl","theme","History","url","replace","strParams","OC","patterns","pattern","handler","hash","query","e","chunkify","tz","Util","humanFileSize","bytesArray","bytes","timestamp","inner","outer","w1","w2","aa","bb","aNum","bNum","internalCallback","cookies","cookie","webroot","webroot$1","OC$1","Config","EventSource","MimeType","L10N","encodePath","dirname","isSamePath","join","getCanonicalLocale","getLanguage","buildQueryString","parseQueryString","generateFilePath","linkTo","version","generateOcsUrl","generateRemoteUrl","OCA","setPageHeading","heading","headingEl","Accessibility","call","method","endpoint","getApps","getKeys","getValue","defaultValue","setValue","deleteKey","types","Collaboration","typeDefinition","escapeHTML","urlRegex","plainToRich","formatLinksRich","richToPlain","formatLinksPlain","_","leadingSpace","protocol","trailingSpace","linkText","loadedScripts","loadedStylesheets","Loader","file","resolve","reject","scriptPath","script","stylePath","link","Toast","showSuccess","showWarning","showError","showInfo","showMessage","OCP","AppConfig","Comments","setDeprecatedProp","warnIfNotTesting","cb","documentAll","isCallable","argument","fails","exec","descriptors","check","it","globalThis_1","globalThis","require$$1","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","require$$2","ie8DomDefine","v8PrototypeDefineBug","$String","$TypeError","anObject","functionBindNative","test","NATIVE_BIND","functionCall","aFunction","getBuiltIn","namespace","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","uncurryThis","objectIsPrototypeOf","navigator","userAgent","environmentUserAgent","process","Deno","versions","v8","environmentV8Version","V8_VERSION","symbolConstructorDetection","symbol","NATIVE_SYMBOL","useSymbolAsUid","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","$Object","isSymbol","$Symbol","tryToString","aCallable","isNullOrUndefined","getMethod","V","P","ordinaryToPrimitive","pref","isPure","defineProperty","defineGlobalProperty","IS_PURE","SHARED","store","sharedStoreModule","create","shared","requireObjectCoercible","hasOwnProperty","hasOwnProperty_1","postfix","uid","hasOwn","require$$4","require$$5","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","O","Attributes","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","require$$6","require$$7","OBJECT_ALREADY_INITIALIZED","TypeError","has","enforce","getterFor","TYPE","metadata","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","stringSlice","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","defineBuiltIn","simple","TO_STRING_TAG","toStringTagSupport","classofRaw","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","classof","tag","normalizeStringArgument","$default","nativeErrorToString","INCORRECT_TO_STRING","errorToString","ErrorPrototype","indexedObject","IndexedObject","toIndexedObject","ceil","floor","mathTrunc","trunc","toIntegerOrInfinity","toAbsoluteIndex","integer","toLength","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","arrayIncludes","push","objectKeysInternal","enumBugKeys","internalObjectKeys","objectKeys","objectDefineProperties","Properties","html","definePropertiesModule","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","activeXDocument","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","objectCreate","UNSCOPABLES","ArrayPrototype","addToUnscopables","iterators","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","descriptor","propertyIsEnumerableModule","objectGetOwnPropertyDescriptor","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","exceptions","replacement","isForced","feature","detection","normalize","POLYFILL","NATIVE","isForced_1","_export","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","correctPrototypeGetter","F","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","constructor","getPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","iteratorCreateConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","functionUncurryThisAccessor","isPossiblePrototype","aPossiblePrototype","uncurryThisAccessor","objectSetPrototypeOf","CORRECT_SETTER","$","FunctionName","createIteratorConstructor","setPrototypeOf","require$$8","require$$9","require$$10","require$$11","require$$12","IteratorsCore","require$$13","PROPER_FUNCTION_NAME","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","createIterResultObject","done","defineIterator","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","nativeKeys","FAILS_ON_PRIMITIVES","objectToString","arraySlice","$getOwnPropertyNames","windowNames","getWindowNames","objectGetOwnPropertyNamesExternal","arrayBufferNonExtensible","buffer","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","REQUIRED","METADATA","setMetadata","fastKey","getWeakData","onFreeze","enable","meta","getOwnPropertyNames","splice","internalMetadataModule","functionUncurryThisClause","bind","functionBindContext","isArrayIteratorMethod","getIteratorMethodInternal","getIteratorMethod","getIteratorInternal","usingIterator","iteratorMethod","iteratorClose","iterator","innerResult","innerError","getIterator","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","step","stop","condition","$iterator","callFn","anInstance","Prototype","SAFE_CLOSING","called","iteratorWithReturn","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","InternalMetadataModule","require$$14","collection","CONSTRUCTOR_NAME","wrapper","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","uncurriedNativeMethod","REPLACE","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","defineBuiltInAccessor","defineBuiltIns","src","SPECIES","setSpecies","internalStateGetterFor","collectionStrong","define","getEntry","previous","prev","callbackfn","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","init","userAgentStartsWith","environment","ENVIRONMENT","environmentIsNode","IS_NODE","getBuiltInNodeModule","domExceptionConstants","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","errorStackClear","stack","dropEntries","DOMExceptionConstants","clearErrorStack","require$$15","require$$16","require$$17","require$$18","DOM_EXCEPTION","DATA_CLONE_ERR","Error","NativeDOMException","MessageChannel","NativeDOMExceptionPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","argumentsLength","code","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","noop","construct","constructorRegExp","isConstructorModern","isConstructorLegacy","isConstructor","createProperty","validateArgumentsLength","passed","required","RegExp","FLAGS_GETTER_IS_CORRECT","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","regexpFlagsDetection","regexpFlags","regExpFlagsDetection","regExpFlagsGetterImplementation","RegExpPrototype","regexpGetFlags","MapPrototype","mapHelpers","SetPrototype","setHelpers","iterateSimple","record","ITERATOR_INSTEAD_OF_RECORD","SetHelpers","Set","forEach","setIterate","interruptible","V8","structuredClone","structuredCloneProperTransfer","PROPER_STRUCTURED_CLONE_TRANSFER","$ArrayBuffer","$MessageChannel","detach","WorkerThreads","channel","$detach","transferable","detachTransferable","errorStackInstallable","require$$19","getRegExpFlags","require$$20","MapHelpers","require$$21","require$$22","require$$23","require$$24","ERROR_STACK_INSTALLABLE","require$$25","require$$26","Object","Array","Date","PerformanceMark","DOMException","Map","mapHas","mapGet","mapSet","setAdd","setHas","thisBooleanValue","thisNumberValue","thisStringValue","thisTimeValue","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","structuredCloneImplementation","set1","set2","checkErrorsCloning","checkNewErrorsCloningSemantic","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","tryNativeRestrictedStructuredClone","createDataTransfer","dataTransfer","cloneBuffer","$type","DataView","cloneView","C","structuredCloneInternal","cloned","v","tryToTransfer","rawTransfer","transfer","buffers","transferred","canvas","context","detachBuffers","form","requestToken","resp","Axios"],"ignoreList":[0,17,18,28,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191],"sources":["../node_modules/moment/dist/moment.js","../build/frontend/core/src/components/ContactsMenu/ContactMenuEntry.vue","../build/frontend/core/src/views/ContactsMenu.vue","../build/frontend/core/src/services/ContactsMenuService.ts","../build/frontend/core/src/components/ContactsMenu.ts","../build/frontend/core/src/components/AppActionIcon.vue","../build/frontend/core/src/components/AppMenuItem.vue","../build/frontend/core/src/components/AppMenuAction.vue","../build/frontend/core/src/components/AppMenuActions.vue","../build/frontend/core/src/components/AppMenu.vue","../build/frontend/core/src/components/MainMenu.ts","../build/frontend/core/src/components/AccountMenu/AccountQRLoginDialog.vue","../build/frontend/core/src/components/AccountMenu/AccountMenuProfileEntry.vue","../build/frontend/core/src/views/AccountMenu.vue","../build/frontend/core/src/components/UserMenu.ts","../build/frontend/core/src/session-heartbeat.ts","../build/frontend/core/src/utils/ClipboardFallback.ts","../node_modules/moment/moment.js","../node_modules/moment/min/locales.js","../build/frontend/core/src/init.ts","../build/frontend/core/src/OC/admin.js","../build/frontend/core/src/OC/appconfig.js","../build/frontend/core/src/OC/appswebroots.js","../build/frontend/core/src/OC/capabilities.js","../build/frontend/core/src/OC/config.js","../build/frontend/core/src/OC/constants.js","../build/frontend/core/src/OC/currentuser.js","../build/frontend/core/src/OC/debug.js","../node_modules/@mdi/svg/svg/folder-move.svg?raw","../build/frontend/core/src/OC/dialogs.js","../build/frontend/core/src/OC/l10n.js","../build/frontend/core/src/OC/mimeType.js","../build/frontend/core/src/OC/msg.ts","../build/frontend/core/src/OC/password-confirmation.js","../build/frontend/core/src/OC/plugins.js","../build/frontend/core/src/OC/query-string.ts","../build/frontend/core/src/OC/routing.js","../build/frontend/core/src/OC/theme.js","../build/frontend/core/src/OC/util-history.js","../build/frontend/core/src/OC/util.js","../build/frontend/core/src/OC/webroot.js","../build/frontend/core/src/OC/index.js","../build/frontend/core/src/OCA/index.js","../build/frontend/core/src/OCP/accessibility.js","../build/frontend/core/src/OCP/appconfig.ts","../build/frontend/core/src/OCP/collaboration.js","../build/frontend/core/src/OCP/comments.ts","../build/frontend/core/src/OCP/loader.js","../build/frontend/core/src/OCP/toast.js","../build/frontend/core/src/OCP/index.js","../build/frontend/core/src/globals.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/global-this.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/environment-user-agent.js","../node_modules/core-js/internals/environment-v8-version.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/normalize-string-argument.js","../node_modules/core-js/internals/error-to-string.js","../node_modules/core-js/modules/es.error.to-string.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/is-possible-prototype.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator-method-internal.js","../node_modules/core-js/internals/get-iterator-internal.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.map.constructor.js","../node_modules/core-js/modules/es.map.js","../node_modules/core-js/modules/es.set.constructor.js","../node_modules/core-js/modules/es.set.js","../node_modules/core-js/internals/environment.js","../node_modules/core-js/internals/environment-is-node.js","../node_modules/core-js/internals/get-built-in-node-module.js","../node_modules/core-js/internals/dom-exception-constants.js","../node_modules/core-js/internals/error-stack-clear.js","../node_modules/core-js/modules/web.dom-exception.constructor.js","../node_modules/core-js/modules/web.dom-exception.stack.js","../node_modules/core-js/modules/web.dom-exception.to-string-tag.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/regexp-flags-detection.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/internals/map-helpers.js","../node_modules/core-js/internals/set-helpers.js","../node_modules/core-js/internals/iterate-simple.js","../node_modules/core-js/internals/set-iterate.js","../node_modules/core-js/internals/structured-clone-proper-transfer.js","../node_modules/core-js/internals/detach-transferable.js","../node_modules/core-js/internals/error-stack-installable.js","../node_modules/core-js/modules/web.structured-clone.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/stable/structured-clone.js","../build/frontend/core/src/main.ts"],"sourcesContent":["//! moment.js\n//! version : 2.31.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidOffset: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid$2(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidOffset &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid$1(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg + '\\n' + new Error().stack);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\e)|(\\\\)?(eHHmm|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n var cacheKey = '$' + format;\n if (!hasOwnProp(formatFunctions, cacheKey)) {\n formatFunctions[cacheKey] = makeFormatFunction(format);\n }\n\n return formatFunctions[cacheKey](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get$2(this, unit);\n }\n };\n}\n\nfunction get$2(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod$1(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod$1(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord,\n monthsParseProperties = [\n 'monthsParse',\n 'longMonthsParse',\n 'shortMonthsParse',\n 'monthsRegex',\n 'monthsShortRegex',\n 'monthsStrictRegex',\n 'monthsShortStrictRegex',\n ];\n\nfunction clearMonthsParseCache(locale, config) {\n var i, prop;\n for (i = 0; i < monthsParseProperties.length; i++) {\n prop = monthsParseProperties[i];\n if (!hasOwnProp(config, prop)) {\n delete locale['_' + prop];\n }\n }\n}\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse$1(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse$1.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get$2(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\naddFormatToken('eHHmm', 0, 0, function () {\n return (\n '' +\n this.weekday() +\n zeroFill(this.hours(), 2) +\n zeroFill(this.minutes(), 2)\n );\n});\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('eHHmm', match5to6);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\naddWeekParseToken('eHHmm', function (input, week, config) {\n var weekdayEnd = input.length - 4;\n\n week.e = toInt(input.substr(0, weekdayEnd));\n config._a[HOUR] = toInt(input.substr(weekdayEnd, 2));\n config._a[MINUTE] = toInt(input.substr(weekdayEnd + 2));\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord,\n weekdaysParseProperties = [\n 'weekdaysParse',\n 'fullWeekdaysParse',\n 'shortWeekdaysParse',\n 'minWeekdaysParse',\n 'weekdaysRegex',\n 'weekdaysShortRegex',\n 'weekdaysMinRegex',\n 'weekdaysStrictRegex',\n 'weekdaysShortStrictRegex',\n 'weekdaysMinStrictRegex',\n ];\n\nfunction clearWeekdaysParseCache(locale, config) {\n var i, prop;\n for (i = 0; i < weekdaysParseProperties.length; i++) {\n prop = weekdaysParseProperties[i];\n if (!hasOwnProp(config, prop)) {\n delete locale['_' + prop];\n }\n }\n}\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get$2(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction set(config) {\n var prop, i;\n clearMonthsParseCache(this, config);\n clearWeekdaysParseCache(this, config);\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar$1(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()],\n formatCache = this._longDateFormatCache;\n\n if (format || !formatUpper) {\n return format;\n }\n\n if (\n formatCache &&\n formatCache[key] &&\n formatCache[key].formatUpper === formatUpper\n ) {\n return formatCache[key].format;\n }\n\n format = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n if (!formatCache) {\n formatCache = this._longDateFormatCache = {};\n }\n formatCache[key] = {\n formatUpper: formatUpper,\n format: format,\n };\n return format;\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTimeWithoutPostformat(\n number,\n withoutSuffix,\n string,\n isFuture\n) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction relativeTime$1(number, withoutSuffix, string, isFuture) {\n return this.postformat(\n relativeTimeWithoutPostformat.call(\n this,\n number,\n withoutSuffix,\n string,\n isFuture\n )\n );\n}\n\nfunction pastFutureWithoutPostformat(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nfunction pastFuture(diff, output) {\n return this.postformat(\n pastFutureWithoutPostformat.call(this, diff, output)\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYearFromDayOfYear(year, dayOfYear, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n week = Math.floor((dayOfYear - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = year - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(year, dow, doy)) {\n resWeek = week - weeksInYear(year, dow, doy);\n resYear = year + 1;\n } else {\n resYear = year;\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n return weekOfYearFromDayOfYear(mom.year(), mom.dayOfYear(), dow, doy);\n}\n\nfunction weekOfYearFromDate(year, month, date, dow, doy) {\n var dayOfYear =\n Math.round(\n (createUTCDate(year, month, date) - createUTCDate(year, 0, 1)) /\n 864e5\n ) + 1;\n\n return weekOfYearFromDayOfYear(year, dayOfYear, dow, doy);\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Only canonical locale module names are safe to append to the require path.\n return typeof name === 'string' && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(name);\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire,\n normalizedName;\n\n // Preserve exact custom locale names before trying the canonical built-in name.\n // Use hasOwnProp rather than a plain lookup so that names like \"__proto__\",\n // \"constructor\", or \"prototype\" can't resolve to an inherited Object.prototype\n // property instead of a real (or missing) locale entry.\n if (hasOwnProp(locales, name)) {\n return locales[name];\n }\n\n normalizedName = normalizeLocale(name);\n if (hasOwnProp(locales, normalizedName)) {\n return locales[normalizedName];\n }\n\n // TODO: Find a better way to register and load all the locales in Node\n if (\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(normalizedName)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + normalizedName);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[normalizedName] = null; // null means not found\n }\n }\n if (hasOwnProp(locales, normalizedName)) {\n return locales[normalizedName];\n }\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n var locale,\n tmpLocale = loadLocale(name),\n parentConfig = baseConfig;\n\n if (tmpLocale != null) {\n name = tmpLocale._abbr;\n }\n\n if (config != null) {\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config, now, forWeek) {\n var hadWeekContext = Object.prototype.hasOwnProperty.call(\n config,\n '_isDefaultDatePartsForWeek'\n ),\n weekContext = config._isDefaultDatePartsForWeek;\n\n // hooks is actually the exported moment object\n config._isDefaultDatePartsForWeek = !!forWeek;\n try {\n return hooks._getDefaultDateParts(config, now, forWeek);\n } finally {\n if (hadWeekContext) {\n config._isDefaultDatePartsForWeek = weekContext;\n } else {\n delete config._isDefaultDatePartsForWeek;\n }\n }\n}\n\nfunction currentDateNow(config) {\n var now = config._defaultDatePartsNow;\n\n if (!now) {\n return hooks.now();\n }\n if (!now.hasValue) {\n now.value = hooks.now();\n now.hasValue = true;\n }\n return now.value;\n}\n\n// Internal hook for extensions that supply omitted calendar fields.\nfunction getDefaultDateParts(config, now, forWeek) {\n var useWeekDefaults = forWeek || config._isDefaultDatePartsForWeek,\n nowValue = useWeekDefaults ? createLocal(now) : new Date(now);\n if (useWeekDefaults) {\n return [nowValue.year(), nowValue.month(), nowValue.date()];\n }\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\nhooks._getDefaultDateParts = getDefaultDateParts;\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n now,\n currentDate,\n expectedWeekday,\n yearToUse,\n dateIsDefaulted;\n\n if (config._d) {\n return;\n }\n\n if (\n config._a[YEAR] == null ||\n config._a[MONTH] == null ||\n config._a[DATE] == null\n ) {\n now = currentDateNow(config);\n currentDate = currentDateArray(config, now);\n }\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config, currentDateArray(config, now, true));\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse =\n config._a[YEAR] != null ? config._a[YEAR] : currentDate[YEAR];\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n dateIsDefaulted =\n config._a[YEAR] == null ||\n config._a[MONTH] == null ||\n config._a[DATE] == null;\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n !dateIsDefaulted &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config, currentDate) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYearFromDate(\n currentDate[YEAR],\n currentDate[MONTH],\n currentDate[DATE],\n 1,\n 4\n ).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYearFromDate(\n currentDate[YEAR],\n currentDate[MONTH],\n currentDate[DATE],\n dow,\n doy\n );\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n defaultDatePartsNow = {},\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._defaultDatePartsNow = defaultDatePartsNow;\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid$2(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid$1({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid$2(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid$1();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid$1();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n for (i = 0; i < moments.length; ++i) {\n if (isMoment(moments[i])) {\n res = moments[i];\n break;\n }\n }\n if (!res) {\n return createInvalid$1();\n }\n for (++i; i < moments.length; ++i) {\n if (\n isMoment(moments[i]) &&\n (!moments[i].isValid() || moments[i][fn](res))\n ) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n var offset = offsetFromString(matchShortOffset, input);\n config._useUTC = true;\n config._tzm = offset;\n if (offset === null) {\n getParsingFlags(config).invalidOffset = input;\n }\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n if (\n toInt(parts[2]) > 59 ||\n (parts[0] === '+' ? minutes > 14 * 60 : minutes > 12 * 60)\n ) {\n return null;\n }\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract$1(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract$1(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract$1(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get$2(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get$2(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add$1 = createAdder(1, 'add'),\n subtract$1 = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone$1() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString$1(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf$1() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid() {\n return isValid$2(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? 1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? 1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto$2 = Moment.prototype;\n\nproto$2.add = add$1;\nproto$2.calendar = calendar;\nproto$2.clone = clone$1;\nproto$2.diff = diff;\nproto$2.endOf = endOf;\nproto$2.format = format;\nproto$2.from = from;\nproto$2.fromNow = fromNow;\nproto$2.to = to;\nproto$2.toNow = toNow;\nproto$2.get = stringGet;\nproto$2.invalidAt = invalidAt;\nproto$2.isAfter = isAfter;\nproto$2.isBefore = isBefore;\nproto$2.isBetween = isBetween;\nproto$2.isSame = isSame;\nproto$2.isSameOrAfter = isSameOrAfter;\nproto$2.isSameOrBefore = isSameOrBefore;\nproto$2.isValid = isValid;\nproto$2.lang = lang;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\nproto$2.max = prototypeMax;\nproto$2.min = prototypeMin;\nproto$2.parsingFlags = parsingFlags;\nproto$2.set = stringSet;\nproto$2.startOf = startOf;\nproto$2.subtract = subtract$1;\nproto$2.toArray = toArray;\nproto$2.toObject = toObject;\nproto$2.toDate = toDate;\nproto$2.toISOString = toISOString$1;\nproto$2.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto$2[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto$2.toJSON = toJSON;\nproto$2.toString = toString;\nproto$2.unix = unix;\nproto$2.valueOf = valueOf$1;\nproto$2.creationData = creationData;\nproto$2.eraName = getEraName;\nproto$2.eraNarrow = getEraNarrow;\nproto$2.eraAbbr = getEraAbbr;\nproto$2.eraYear = getEraYear;\nproto$2.year = getSetYear;\nproto$2.isLeapYear = getIsLeapYear;\nproto$2.weekYear = getSetWeekYear;\nproto$2.isoWeekYear = getSetISOWeekYear;\nproto$2.quarter = proto$2.quarters = getSetQuarter;\nproto$2.month = getSetMonth;\nproto$2.daysInMonth = getDaysInMonth;\nproto$2.week = proto$2.weeks = getSetWeek;\nproto$2.isoWeek = proto$2.isoWeeks = getSetISOWeek;\nproto$2.weeksInYear = getWeeksInYear;\nproto$2.weeksInWeekYear = getWeeksInWeekYear;\nproto$2.isoWeeksInYear = getISOWeeksInYear;\nproto$2.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto$2.date = getSetDayOfMonth;\nproto$2.day = proto$2.days = getSetDayOfWeek;\nproto$2.weekday = getSetLocaleDayOfWeek;\nproto$2.isoWeekday = getSetISODayOfWeek;\nproto$2.dayOfYear = getSetDayOfYear;\nproto$2.hour = proto$2.hours = getSetHour;\nproto$2.minute = proto$2.minutes = getSetMinute;\nproto$2.second = proto$2.seconds = getSetSecond;\nproto$2.millisecond = proto$2.milliseconds = getSetMillisecond;\nproto$2.utcOffset = getSetOffset;\nproto$2.utc = setOffsetToUTC;\nproto$2.local = setOffsetToLocal;\nproto$2.parseZone = setOffsetToParsedOffset;\nproto$2.hasAlignedHourOffset = hasAlignedHourOffset;\nproto$2.isDST = isDaylightSavingTime;\nproto$2.isLocal = isLocal;\nproto$2.isUtcOffset = isUtcOffset;\nproto$2.isUtc = isUtc;\nproto$2.isUTC = isUtc;\nproto$2.zoneAbbr = getZoneAbbr;\nproto$2.zoneName = getZoneName;\nproto$2.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto$2.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto$2.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto$2.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto$2.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar$1;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime$1;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs$1() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add(input, value) {\n return addSubtract(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract(input, value) {\n return addSubtract(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf = asMilliseconds;\n\nfunction clone() {\n return createDuration(this);\n}\n\nfunction get(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return relativeTimeWithoutPostformat.call(\n locale,\n number || 1,\n !!withoutSuffix,\n string,\n isFuture\n );\n}\n\nfunction relativeTime(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = extend(extend({}, thresholds), argThresholds || {});\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = pastFutureWithoutPostformat.call(locale, +this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs(this._milliseconds) / 1000,\n days = abs(this._days),\n months = abs(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto = Duration.prototype;\n\nproto.isValid = isValid$1;\nproto.abs = abs$1;\nproto.add = add;\nproto.subtract = subtract;\nproto.as = as;\nproto.asMilliseconds = asMilliseconds;\nproto.asSeconds = asSeconds;\nproto.asMinutes = asMinutes;\nproto.asHours = asHours;\nproto.asDays = asDays;\nproto.asWeeks = asWeeks;\nproto.asMonths = asMonths;\nproto.asQuarters = asQuarters;\nproto.asYears = asYears;\nproto.valueOf = valueOf;\nproto._bubble = bubble;\nproto.clone = clone;\nproto.get = get;\nproto.milliseconds = milliseconds;\nproto.seconds = seconds;\nproto.minutes = minutes;\nproto.hours = hours;\nproto.days = days;\nproto.weeks = weeks;\nproto.months = months;\nproto.years = years;\nproto.humanize = humanize;\nproto.toISOString = toISOString;\nproto.toString = toISOString;\nproto.toJSON = toISOString;\nproto.locale = locale;\nproto.localeData = localeData;\n\nproto.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString\n);\nproto.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.31.0';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto$2;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid$1;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto$2;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport { hooks as default };\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { ContactsMenuEntry } from '@nextcloud/vue/functions/contactsMenu'\n\nimport { getEnabledContactsMenuActions } from '@nextcloud/vue/functions/contactsMenu'\nimport { computed } from 'vue'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\n\ninterface ContactAction {\n\ttitle: string\n\ticon: string\n\thyperlink: string\n}\n\n/** A contact as returned by the contacts menu API */\ntype Contact = Omit<ContactsMenuEntry, 'topAction' | 'actions'> & {\n\ttopAction: ContactAction | null\n\tactions: ContactAction[]\n}\n\nconst props = defineProps<{\n\tcontact: Contact\n}>()\n\nconst actions = computed(() => props.contact.topAction\n\t? [props.contact.topAction, ...props.contact.actions]\n\t: props.contact.actions)\n\nconst jsActions = computed(() => getEnabledContactsMenuActions(props.contact))\n\nconst preloadedUserStatus = computed(() => props.contact.status\n\t? {\n\t\t\tstatus: props.contact.status,\n\t\t\tmessage: props.contact.statusMessage,\n\t\t\ticon: props.contact.statusIcon,\n\t\t}\n\t: undefined)\n</script>\n\n<template>\n\t<li class=\"contact\">\n\t\t<NcAvatar\n\t\t\tclass=\"contact__avatar\"\n\t\t\t:user=\"contact.isUser ? contact.uid ?? undefined : undefined\"\n\t\t\t:isNoUser=\"!contact.isUser\"\n\t\t\tdisableMenu\n\t\t\t:displayName=\"contact.fullName\"\n\t\t\t:url=\"contact.isUser ? undefined : contact.avatar ?? undefined\"\n\t\t\t:preloadedUserStatus=\"preloadedUserStatus\" />\n\t\t<a\n\t\t\tclass=\"contact__body\"\n\t\t\t:href=\"contact.profileUrl || contact.topAction?.hyperlink\">\n\t\t\t<div class=\"contact__body__full-name\">{{ contact.fullName }}</div>\n\t\t\t<div v-if=\"contact.lastMessage\" class=\"contact__body__last-message\">{{ contact.lastMessage }}</div>\n\t\t\t<div v-if=\"contact.statusMessage\" class=\"contact__body__status-message\">{{ contact.statusMessage }}</div>\n\t\t\t<div v-else class=\"contact__body__email-address\">{{ contact.emailAddresses[0] }}</div>\n\t\t</a>\n\t\t<NcActions\n\t\t\tv-if=\"actions.length\"\n\t\t\t:inline=\"contact.topAction ? 1 : 0\">\n\t\t\t<template v-for=\"(action, idx) in actions\" :key=\"idx\">\n\t\t\t\t<NcActionLink\n\t\t\t\t\tv-if=\"action.hyperlink !== '#'\"\n\t\t\t\t\t:href=\"action.hyperlink\"\n\t\t\t\t\tclass=\"other-actions\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"contact__action__icon\" :src=\"action.icon\">\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.title }}\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionText v-else class=\"other-actions\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"contact__action__icon\" :src=\"action.icon\">\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.title }}\n\t\t\t\t</NcActionText>\n\t\t\t</template>\n\t\t\t<NcActionButton\n\t\t\t\tv-for=\"action in jsActions\"\n\t\t\t\t:key=\"action.id\"\n\t\t\t\tcloseAfterClick\n\t\t\t\tclass=\"other-actions\"\n\t\t\t\t@click=\"action.callback(contact)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.iconSvg(contact)\" />\n\t\t\t\t</template>\n\t\t\t\t{{ action.displayName(contact) }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</li>\n</template>\n\n<style scoped lang=\"scss\">\n.contact {\n\tdisplay: flex;\n\tposition: relative;\n\talign-items: center;\n\tpadding: 3px;\n\tpadding-inline-start: 10px;\n\n\t&__action {\n\t\t&__icon {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tpadding: calc((var(--default-clickable-area) - 20px) / 2);\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n\n\t&__avatar {\n\t\tdisplay: inherit;\n\t}\n\n\t&__body {\n\t\tflex-grow: 1;\n\t\tpadding-inline-start: 10px;\n\t\tmargin-inline-start: 10px;\n\t\tmin-width: 0;\n\n\t\tdiv {\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\toverflow-x: clip;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tmargin: -1px 0;\n\t\t}\n\t\tdiv:first-of-type {\n\t\t\tmargin-top: 0;\n\t\t}\n\t\tdiv:last-of-type {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t&__last-message, &__status-message, &__email-address {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t}\n\t}\n\n\t.other-actions {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tcursor: pointer;\n\n\t\timg {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n\n\tbutton.other-actions {\n\t\twidth: 44px;\n\n\t\t&:focus {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t}\n\t}\n\n\t/* actions menu */\n\t.menu {\n\t\ttop: 47px;\n\t\tmargin-inline-end: 13px;\n\t}\n\n\t.popovermenu::after {\n\t\tinset-inline-end: 2px;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { mdiAccountGroupOutline, mdiContacts, mdiMagnify } from '@mdi/js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport { computed, nextTick, ref, useTemplateRef, watch } from 'vue'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcHeaderMenu from '@nextcloud/vue/components/NcHeaderMenu'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\nimport ContactMenuEntry from '../components/ContactsMenu/ContactMenuEntry.vue'\nimport { logger } from '../utils/logger.ts'\n\nconst storage = getBuilder('core:contacts')\n\t.persist(true)\n\t.clearOnLogout(true)\n\t.build()\n\nconst user = getCurrentUser()!\nconst contactsAppURL = generateUrl('/apps/contacts')\nconst contactsAppMgmtURL = generateUrl('/settings/apps/social/contacts')\n\nconst contactsMenuInput = useTemplateRef('contactsMenuInput')\n\nconst actions = ref(window.OC?.ContactsMenu?.actions || [])\nconst contactsAppEnabled = ref(false)\nconst contacts = ref([])\nconst loadingText = ref<string>()\nconst hasError = ref(false)\nconst searchTerm = ref('')\n\nconst teams = ref<ITeam[]>([])\nconst selectedTeam = ref<string>('$_all_$')\nconst selectedTeamName = computed(() => teams.value.find((t) => t.teamId === selectedTeam.value)?.displayName)\n\nconst team = storage.getItem('core:contacts:team')\nif (team) {\n\tselectedTeam.value = JSON.parse(team)\n}\n\nwatch(selectedTeam, () => {\n\tstorage.setItem('core:contacts:team', JSON.stringify(selectedTeam.value))\n\tgetContacts(searchTerm.value)\n})\n\n/**\n * Load contacts when opening the menu\n */\nasync function onOpened() {\n\tawait Promise.all([getContacts(''), getTeams()])\n}\n\n/**\n * Load teams for current user from the server\n */\nasync function getTeams() {\n\tif (userTeams.length === 0) {\n\t\ttry {\n\t\t\tconst { data } = await axios.get<ITeam[]>(generateUrl('/contactsmenu/teams'))\n\t\t\tuserTeams.push(...data)\n\t\t} catch (error) {\n\t\t\tlogger.error('could not load user teams', { error })\n\t\t}\n\t}\n\tteams.value = [...userTeams]\n}\n\n/**\n * Load contacts from the server\n *\n * @param searchTerm - The search term to filter contacts by\n */\nasync function getContacts(searchTerm: string) {\n\tif (searchTerm === '') {\n\t\tloadingText.value = t('core', 'Loading your contacts …')\n\t} else {\n\t\tloadingText.value = t('core', 'Looking for {term} …', {\n\t\t\tterm: searchTerm,\n\t\t})\n\t}\n\n\t// Let the user try a different query if the previous one failed\n\thasError.value = false\n\ttry {\n\t\tconst { data } = await axios.post(generateUrl('/contactsmenu/contacts'), {\n\t\t\tfilter: searchTerm,\n\t\t\tteamId: selectedTeam.value !== '$_all_$' ? selectedTeam.value : undefined,\n\t\t})\n\t\tcontacts.value = data.contacts\n\t\tcontactsAppEnabled.value = data.contactsAppEnabled\n\t\tloadingText.value = undefined\n\t} catch (error) {\n\t\tlogger.error('could not load contacts', {\n\t\t\terror,\n\t\t\tsearchTerm,\n\t\t})\n\t\thasError.value = true\n\t}\n}\n\nconst onInputDebounced = debounce(function() {\n\tgetContacts(searchTerm.value)\n}, 500)\n\n/**\n * Reset the search state\n */\nfunction onReset() {\n\tsearchTerm.value = ''\n\tcontacts.value = []\n\tfocusInput()\n}\n\n/**\n * Focus the search input on next tick\n */\nfunction focusInput() {\n\tnextTick(() => {\n\t\tcontactsMenuInput.value?.focus()\n\t\tcontactsMenuInput.value?.select()\n\t})\n}\n</script>\n\n<script lang=\"ts\">\ninterface ITeam {\n\tteamId: string\n\tdisplayName: string\n\tlink: string\n}\n\nconst userTeams: ITeam[] = []\n</script>\n\n<template>\n\t<NcHeaderMenu\n\t\tid=\"contactsmenu\"\n\t\tclass=\"contactsmenu\"\n\t\t:aria-label=\"t('core', 'Search contacts')\"\n\t\texcludeClickOutsideSelectors=\".v-popper__popper\"\n\t\t@update:open=\"$event && onOpened()\">\n\t\t<template #trigger>\n\t\t\t<NcIconSvgWrapper class=\"contactsmenu__trigger-icon\" :path=\"mdiContacts\" />\n\t\t</template>\n\t\t<div class=\"contactsmenu__menu\">\n\t\t\t<div class=\"contactsmenu__menu__search-container\">\n\t\t\t\t<div class=\"contactsmenu__menu__input-wrapper\">\n\t\t\t\t\t<NcActions forceMenu :aria-label=\"t('core', 'Filter by team')\" variant=\"tertiary\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiAccountGroupOutline\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #default>\n\t\t\t\t\t\t\t<NcActionButton\n\t\t\t\t\t\t\t\tv-model=\"selectedTeam\"\n\t\t\t\t\t\t\t\tvalue=\"$_all_$\"\n\t\t\t\t\t\t\t\ttype=\"radio\">\n\t\t\t\t\t\t\t\t{{ t('core', 'All teams') }}\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t\t<NcActionButton\n\t\t\t\t\t\t\t\tv-for=\"team of teams\"\n\t\t\t\t\t\t\t\t:key=\"team.teamId\"\n\t\t\t\t\t\t\t\tv-model=\"selectedTeam\"\n\t\t\t\t\t\t\t\t:value=\"team.teamId\"\n\t\t\t\t\t\t\t\ttype=\"radio\">\n\t\t\t\t\t\t\t\t{{ team.displayName }}\n\t\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcActions>\n\t\t\t\t\t<NcTextField\n\t\t\t\t\t\tid=\"contactsmenu__menu__search\"\n\t\t\t\t\t\tref=\"contactsMenuInput\"\n\t\t\t\t\t\tv-model=\"searchTerm\"\n\t\t\t\t\t\tclass=\"contactsmenu__menu__search\"\n\t\t\t\t\t\ttrailingButtonIcon=\"close\"\n\t\t\t\t\t\t:label=\"selectedTeamName\n\t\t\t\t\t\t\t? t('core', 'Search contacts in team {team}', { team: selectedTeamName })\n\t\t\t\t\t\t\t: t('core', 'Search contacts …')\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t:trailingButtonLabel=\"t('core', 'Reset search')\"\n\t\t\t\t\t\t:showTrailingButton=\"searchTerm !== ''\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\t@update:modelValue=\"onInputDebounced\"\n\t\t\t\t\t\t@trailingButtonClick=\"onReset\" />\n\t\t\t\t</div>\n\t\t\t\t<NcButton\n\t\t\t\t\tv-for=\"action in actions\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:aria-label=\"action.label\"\n\t\t\t\t\t:title=\"action.label\"\n\t\t\t\t\tclass=\"contactsmenu__menu__action\"\n\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t@click=\"action.onClick\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.icon\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<NcEmptyContent v-if=\"hasError\" :name=\"t('core', 'Could not load your contacts')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiMagnify\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t\t<NcEmptyContent v-else-if=\"loadingText\" :name=\"loadingText\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t\t<NcEmptyContent v-else-if=\"contacts.length === 0\" :name=\"t('core', 'No contacts found')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiMagnify\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t\t<div v-else class=\"contactsmenu__menu__content\">\n\t\t\t\t<div id=\"contactsmenu-contacts\">\n\t\t\t\t\t<ul :aria-label=\"t('core', 'Contacts list')\">\n\t\t\t\t\t\t<ContactMenuEntry v-for=\"contact in contacts\" :key=\"contact.id\" :contact=\"contact\" />\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"contactsAppEnabled\" class=\"contactsmenu__menu__content__footer\">\n\t\t\t\t\t<NcButton variant=\"tertiary\" :href=\"contactsAppURL\">\n\t\t\t\t\t\t{{ t('core', 'Show all contacts') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<div v-else-if=\"user.isAdmin\" class=\"contactsmenu__menu__content__footer\">\n\t\t\t\t\t<NcButton variant=\"tertiary\" :href=\"contactsAppMgmtURL\">\n\t\t\t\t\t\t{{ t('core', 'Install the Contacts app') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</NcHeaderMenu>\n</template>\n\n<style lang=\"scss\" scoped>\n.contactsmenu {\n\toverflow-y: hidden;\n\n\t&__trigger-icon {\n\t\tcolor: var(--color-background-plain-text) !important;\n\t}\n\n\t&__menu {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\toverflow: hidden;\n\t\theight: calc(50px * 6 + 2px + 26px);\n\t\tmax-height: inherit;\n\n\t\t&__search-container {\n\t\t\tpadding: 10px;\n\t\t\tdisplay: flex;\n\t\t\tflex: row nowrap;\n\t\t\tcolumn-gap: 10px;\n\t\t}\n\n\t\t&__input-wrapper {\n\t\t\tz-index: 2;\n\t\t\ttop: 0;\n\t\t\tflex-grow: 1;\n\t\t\tdisplay: flex;\n\t\t\tgap: var(--default-grid-baseline);\n\t\t}\n\n\t\t&__search {\n\t\t\twidth: 100%;\n\t\t\theight: 34px;\n\t\t\tmargin-top: 0!important;\n\t\t}\n\n\t\t&__content {\n\t\t\toverflow-y: auto;\n\t\t\tmargin-top: 10px;\n\t\t\tflex: 1 1 auto;\n\n\t\t\t&__footer {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t}\n\t\t}\n\n\t\ta {\n\t\t\t&:focus-visible {\n\t\t\t\tbox-shadow: inset 0 0 0 2px var(--color-main-text) !important; // override rule in core/css/headers.scss #header a:focus-visible\n\t\t\t}\n\t\t}\n\t}\n\n\t:deep(.empty-content) {\n\t\tmargin: 0 !important;\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IContactsMenuAction } from '../types/contactsMenuAction.ts'\n\nexport default class ContactsMenuService {\n\tprivate _actions: IContactsMenuAction[]\n\n\tconstructor() {\n\t\tthis._actions = []\n\t}\n\n\tget actions(): IContactsMenuAction[] {\n\t\treturn this._actions\n\t}\n\n\t/*\n\t * Register an action for the contacts menu\n\t * Actions use NcButton\n\t */\n\taddAction(action: IContactsMenuAction): void {\n\t\tthis._actions.push(action)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport ContactsMenu from '../views/ContactsMenu.vue'\nimport ContactsMenuService from '../services/ContactsMenuService.ts'\nimport { mountInPlace } from '../utils/mountInPlace.ts'\n\n/**\n * Set up the contacts menu component (\"ContactsMenu\")\n * This is the menu where users can access their contacts or other users on this instance.\n */\nexport function setUp() {\n\tconst mountPoint = document.getElementById('contactsmenu')\n\n\tif (mountPoint) {\n\t\twindow.OC.ContactsMenu = new ContactsMenuService()\n\t\tmountInPlace(createApp(ContactsMenu), mountPoint)\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { mdiPlus } from '@mdi/js'\nimport { computed } from 'vue'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\n\nconst props = defineProps<{\n\t/** URL of the icon, painted as-is so the colors of the action are kept. */\n\ticon?: string\n\t/** Color of the indicator; without one no indicator is rendered. */\n\tcolor?: string\n}>()\n\n// Escaped so a crafted path cannot break out of the url() token.\nconst iconStyle = computed(() => ({\n\t'--app-action-icon-url': `url(\"${(props.icon ?? '').replace(/[\"\\\\]/g, '\\\\$&')}\")`,\n}))\n\nconst indicatorStyle = computed(() => ({\n\t'--app-action-icon-indicator-color': props.color,\n}))\n</script>\n\n<template>\n\t<span class=\"app-action-icon\">\n\t\t<!-- @slot Icon to render instead of the `icon` URL, e.g. an inline icon component. -->\n\t\t<slot>\n\t\t\t<span\n\t\t\t\tv-if=\"icon\"\n\t\t\t\tclass=\"app-action-icon__img\"\n\t\t\t\t:style=\"iconStyle\"\n\t\t\t\taria-hidden=\"true\" />\n\t\t</slot>\n\t\t<span\n\t\t\tv-if=\"color\"\n\t\t\tclass=\"app-action-icon__indicator\"\n\t\t\t:style=\"indicatorStyle\"\n\t\t\taria-hidden=\"true\">\n\t\t\t<NcIconSvgWrapper inline :path=\"mdiPlus\" />\n\t\t</span>\n\t</span>\n</template>\n\n<style scoped lang=\"scss\">\n.app-action-icon {\n\t// Consumers size the icon through --app-action-icon-size, see AppMenuItem.\n\t--app-action-icon-glyph-size: calc(var(--app-action-icon-size, calc(var(--default-grid-baseline) * 12)) * 0.8);\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: var(--app-action-icon-size, calc(var(--default-grid-baseline) * 12));\n\theight: var(--app-action-icon-size, calc(var(--default-grid-baseline) * 12));\n\ttransform: scale(var(--app-icon-scale, 1));\n\ttransition: transform var(--animation-quick) ease-out;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&__img {\n\t\twidth: var(--app-action-icon-glyph-size);\n\t\theight: var(--app-action-icon-glyph-size);\n\t\tbackground: var(--app-action-icon-url) center / contain no-repeat;\n\t}\n\n\t// Slotted icon components ship their own SVG dimensions.\n\t:deep(.icon-vue) {\n\t\twidth: var(--app-action-icon-glyph-size);\n\t\theight: var(--app-action-icon-glyph-size);\n\t}\n\n\t:deep(.icon-vue svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\t}\n\n\t&__indicator {\n\t\t--app-action-icon-indicator-size: max(12px, calc(var(--app-action-icon-size, calc(var(--default-grid-baseline) * 12)) * 0.36));\n\t\tposition: absolute;\n\t\tinset-block-end: 0;\n\t\tinset-inline-end: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--app-action-icon-indicator-size);\n\t\theight: var(--app-action-icon-indicator-size);\n\t\tborder-radius: 50%;\n\t\tbackground-color: var(--app-action-icon-indicator-color);\n\t\t// Separates the indicator from the icon underneath.\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbox-sizing: content-box;\n\t\t// The indicator color is app-provided and saturated, so the glyph on top\n\t\t// of it cannot follow the theme text color.\n\t\tcolor: #fff;\n\n\t\t:deep(.icon-vue) {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { INavigationEntry } from '../types/navigation.d.ts'\n\nimport { n } from '@nextcloud/l10n'\nimport { computed } from 'vue'\nimport AppIcon from './AppIcon.vue'\n\nconst props = withDefaults(defineProps<{\n\tapp: INavigationEntry\n\t/**\n\t * Horizontal layout (icon beside the label) instead of the stacked tile.\n\t * Used for the list of overflowing navigation actions.\n\t */\n\tcompact?: boolean\n\t/** When true, the link opens in a new tab with rel=\"noopener noreferrer\". Used for external destinations (e.g. the app store). */\n\tnewTab?: boolean\n\t/** When true, render the circle as an outline only (used for \"More apps\" / utility entries). */\n\toutlined?: boolean\n\t/**\n\t * Roving-tabindex value. AppMenu sets this to 0 on the focused tile and\n\t * -1 on all other tiles so only one stop is in the natural Tab order.\n\t * Default -1 keeps tiles out of the Tab order when used standalone.\n\t */\n\ttabindex?: number\n}>(), {\n\ttabindex: -1,\n})\n\n// Entries without an `href` render as a <button>, so consumers have to handle\n// the activation themselves (see AppMenuAction).\ndefineEmits<{\n\t(event: 'click', mouseEvent: MouseEvent): void\n}>()\n\nconst unreadLabel = computed(() => {\n\tif (!props.app.unread) {\n\t\treturn undefined\n\t}\n\treturn n(\n\t\t'core',\n\t\t'{count} notification',\n\t\t'{count} notifications',\n\t\tprops.app.unread,\n\t\t{ count: props.app.unread },\n\t)\n})\n</script>\n\n<template>\n\t<component\n\t\t:is=\"app.href ? 'a' : 'button'\"\n\t\tclass=\"app-item\"\n\t\t:class=\"{\n\t\t\t'app-item--active': app.active,\n\t\t\t'app-item--compact': compact,\n\t\t\t'app-item--outlined': outlined,\n\t\t}\"\n\t\t:type=\"app.href ? undefined : 'button'\"\n\t\t:href=\"app.href || undefined\"\n\t\t:target=\"newTab ? '_blank' : undefined\"\n\t\t:rel=\"newTab ? 'noopener noreferrer' : undefined\"\n\t\t:aria-current=\"app.active ? 'page' : undefined\"\n\t\t:tabindex=\"tabindex\"\n\t\t:title=\"app.name\"\n\t\trole=\"menuitem\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<!-- @slot Icon of the entry, e.g. an AppActionIcon for navigation actions. -->\n\t\t<slot name=\"icon\">\n\t\t\t<AppIcon :icon=\"app.icon\" :outlined=\"outlined\">\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"app.unread\"\n\t\t\t\t\tclass=\"app-item__unread\"\n\t\t\t\t\taria-hidden=\"true\" />\n\t\t\t</AppIcon>\n\t\t</slot>\n\t\t<span class=\"app-item__label\">\n\t\t\t{{ app.name }}\n\t\t\t<span v-if=\"app.unread\" class=\"hidden-visually\">, {{ unreadLabel }}</span>\n\t\t</span>\n\t</component>\n</template>\n\n<style scoped lang=\"scss\">\n.app-item {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: var(--default-grid-baseline);\n\t// Keeps the grown circle and the focus ring off the tile's edge.\n\tpadding-block: var(--default-grid-baseline);\n\tborder-radius: var(--border-radius-element);\n\ttext-decoration: none;\n\tcolor: var(--color-main-text);\n\tmin-width: 0;\n\t// Reset the user-agent styles of the <button> flavour; no-ops for <a>.\n\tpadding-inline: 0;\n\tborder: none;\n\tbackground-color: transparent;\n\tfont: inherit;\n\tcursor: pointer;\n\n\t// Inset ring instead of outline + offset: the offset version visibly\n\t// clips at the popover's rounded edge for items in the first/last row\n\t// or column. The inset shadow stays inside the tile's own bounds.\n\t&:focus-visible {\n\t\toutline: none;\n\t\tbox-shadow: inset 0 0 0 2px var(--color-primary-element);\n\t}\n\n\t&:hover,\n\t&:focus-visible {\n\t\t--app-icon-scale: 1.08;\n\t}\n\n\t&:active {\n\t\t--app-icon-scale: 0.96;\n\t}\n\n\t&__unread {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tinset-inline-end: 0;\n\t\twidth: calc(var(--default-grid-baseline) * 3);\n\t\theight: calc(var(--default-grid-baseline) * 3);\n\t\tborder-radius: 50%;\n\t\tbackground-color: var(--color-error);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbox-sizing: content-box;\n\t}\n\n\t&__label {\n\t\tfont-size: 12px;\n\t\tline-height: 1.3;\n\t\ttext-align: center;\n\t\tcolor: var(--color-main-text);\n\t\t// Needs a matching <html lang> to actually break with a hyphen.\n\t\t-webkit-hyphens: auto;\n\t\thyphens: auto;\n\t\tword-break: normal;\n\t\toverflow-wrap: break-word;\n\t\tmax-width: 100%;\n\t\tletter-spacing: -0.3px;\n\t\tpadding-inline: var(--default-grid-baseline);\n\t}\n\n\t// Utility entries (\"More apps\", \"App store\") are subdued, they are not apps.\n\t&--outlined &__label {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t// One-line list row with the icon inline, used outside the app grid where\n\t// there is horizontal room for the full label.\n\t&--compact {\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: calc(var(--default-grid-baseline) * 2);\n\t\twidth: 100%;\n\t\tpadding-inline: var(--default-grid-baseline);\n\t\t// The tile's grown icon would overflow a list row.\n\t\t--app-icon-circle-size: calc(var(--default-grid-baseline) * 8);\n\t\t--app-action-icon-size: calc(var(--default-grid-baseline) * 8);\n\n\t\t&:hover,\n\t\t&:focus-visible {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t&--compact &__label {\n\t\tfont-size: var(--default-font-size);\n\t\ttext-align: start;\n\t\twhite-space: nowrap;\n\t\thyphens: none;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tletter-spacing: normal;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { INavigationEntry } from '../types/navigation.d.ts'\n\nimport { emit as emitOnEventBus } from '@nextcloud/event-bus'\nimport { computed } from 'vue'\nimport AppActionIcon from './AppActionIcon.vue'\nimport AppMenuItem from './AppMenuItem.vue'\n\nconst props = withDefaults(defineProps<{\n\t/** The navigation action to render (INavigationManager::TYPE_ACTION entry). */\n\taction: INavigationEntry\n\t/** Render as a one-line list row instead of a tile (used in the overflow menu). */\n\tcompact?: boolean\n\t/** Roving-tabindex value, see AppMenuItem. */\n\ttabindex?: number\n}>(), {\n\ttabindex: -1,\n})\n\nconst emit = defineEmits<{\n\t/** Emitted after the action was activated, so the app menu can close. */\n\t(event: 'click', mouseEvent: MouseEvent): void\n}>()\n\n// `href` is required by NavigationManager, so handler-only actions carry an\n// empty string or \"#\" as placeholder.\nconst hasLink = computed(() => Boolean(props.action.href) && props.action.href !== '#')\n\n// AppMenuItem picks the element by `href`, so the placeholder has to be\n// stripped for handler-only actions to render as a <button>.\nconst entry = computed<INavigationEntry>(() => hasLink.value\n\t? props.action\n\t: { ...props.action, href: '' })\n\n/**\n * Actions with a link simply navigate. Actions without one are implemented in\n * JavaScript by the registering app, which listens on the event bus.\n *\n * @param mouseEvent - The click event of the underlying item\n */\nfunction onClick(mouseEvent: MouseEvent): void {\n\tif (!hasLink.value) {\n\t\temitOnEventBus('core:navigation:action', props.action)\n\t}\n\temit('click', mouseEvent)\n}\n</script>\n\n<template>\n\t<AppMenuItem\n\t\t:app=\"entry\"\n\t\t:compact=\"compact\"\n\t\t:tabindex=\"tabindex\"\n\t\t@click=\"onClick\">\n\t\t<template #icon>\n\t\t\t<AppActionIcon :icon=\"action.icon\" :color=\"action.color\" />\n\t\t</template>\n\t</AppMenuItem>\n</template>\n","<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { ComponentPublicInstance } from 'vue'\nimport type { INavigationEntry } from '../types/navigation.d.ts'\n\nimport { mdiDotsHorizontal } from '@mdi/js'\nimport { t } from '@nextcloud/l10n'\nimport { computed, ref, watch } from 'vue'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\nimport AppActionIcon from './AppActionIcon.vue'\nimport AppMenuAction from './AppMenuAction.vue'\nimport AppMenuItem from './AppMenuItem.vue'\n\ntype ItemRef = { $el: HTMLElement }\n\nconst props = defineProps<{\n\t/** Navigation actions to render (INavigationManager::TYPE_ACTION entries). */\n\tactions: INavigationEntry[]\n}>()\n\nconst emit = defineEmits<{\n\t/** Emitted when an action was activated, so the app menu can close. */\n\t(event: 'click'): void\n}>()\n\n/**\n * Number of cells in the actions row, matching the column count of the app\n * grid. Actions that do not fit move into the trailing \"More\" cell.\n */\nconst ACTIONS_PER_ROW = 4\n\n// Rendered by AppMenuItem instead of AppMenuAction: it opens the submenu\n// rather than triggering an action. The icon comes from the template slot, so\n// no asset is needed here.\nconst overflowEntry: INavigationEntry = {\n\tid: 'more-actions',\n\tactive: false,\n\torder: Number.MAX_SAFE_INTEGER,\n\thref: '',\n\ticon: '',\n\ttype: 'action',\n\tname: t('core', 'More'),\n\tunread: 0,\n}\n\n// Roving tabindex within the row; `rowActions.length` is the overflow cell, so\n// the whole row is a single Tab stop.\nconst focusedIndex = ref(0)\n// Roving tabindex within the overflow submenu.\nconst overflowFocusedIndex = ref(0)\nconst overflowOpened = ref(false)\n\n// Items by position; a ref inside v-for does not keep the source order.\nconst rowItems: (ItemRef | undefined)[] = []\nconst overflowItems: (ItemRef | undefined)[] = []\nconst overflowTrigger = ref<ItemRef | null>(null)\n\n/**\n * Keep the rendered item of a position.\n *\n * @param items - The items of one of the two roving contexts\n * @param index - The position of the item\n * @param item - The rendered item, null once it is removed\n */\nfunction setItem(items: (ItemRef | undefined)[], index: number, item: Element | ComponentPublicInstance | null): void {\n\titems[index] = (item ?? undefined) as ItemRef | undefined\n}\n\nconst hasOverflow = computed(() => props.actions.length > ACTIONS_PER_ROW)\n\n// The last cell is taken by the overflow trigger as soon as the actions do not\n// fit into a single row.\nconst rowActions = computed(() => hasOverflow.value\n\t? props.actions.slice(0, ACTIONS_PER_ROW - 1)\n\t: props.actions)\n\nconst overflowActions = computed(() => hasOverflow.value\n\t? props.actions.slice(ACTIONS_PER_ROW - 1)\n\t: [])\n\n/** Number of roving stops in the row, including the overflow cell. */\nconst rowLength = computed(() => rowActions.value.length + (hasOverflow.value ? 1 : 0))\n\n// Every opening starts a fresh roving context on the first entry.\nwatch(overflowOpened, (isOpen) => {\n\tif (isOpen) {\n\t\toverflowFocusedIndex.value = 0\n\t\ttrySubmenuFocus(5)\n\t}\n})\n\nwatch(() => props.actions, () => {\n\tif (focusedIndex.value >= rowLength.value) {\n\t\tfocusedIndex.value = 0\n\t}\n})\n\n/**\n * focus-trap deactivation target of the submenu: the cell that opened it,\n * inside the still open app menu popover.\n */\nfunction returnFocusTarget(): HTMLElement | null {\n\treturn overflowTrigger.value?.$el ?? null\n}\n\n/**\n * Focus the first submenu entry once it is rendered. NcPopover renders its\n * content asynchronously, so poll for the items - bounded, so a missing ref\n * can never leak frames.\n *\n * @param retries - Remaining animation frames to wait for the items\n */\nfunction trySubmenuFocus(retries: number): void {\n\tif (!overflowOpened.value || retries <= 0) {\n\t\treturn\n\t}\n\tif (!overflowItems[0]) {\n\t\trequestAnimationFrame(() => trySubmenuFocus(retries - 1))\n\t\treturn\n\t}\n\toverflowItems[0].$el.focus()\n}\n\n/**\n * Roving-tabindex contract of the actions row. Arrow keys clamp at both ends\n * (no wrap); Tab is not handled so the browser moves focus out of the row -\n * which is also how the row is reached from the app grid above.\n *\n * @param event - The keydown event\n */\nfunction onRowKeydown(event: KeyboardEvent): void {\n\t// The submenu has its own handler; do not act on bubbled keys.\n\tif ((event.target as HTMLElement | null)?.closest('.app-menu-actions__submenu')) {\n\t\treturn\n\t}\n\tconst next = nextIndex(event, focusedIndex.value, rowLength.value, 'horizontal')\n\tif (next === null) {\n\t\treturn\n\t}\n\tfocusedIndex.value = next\n\tfocusRowItem(next)\n}\n\n/**\n * Roving-tabindex contract of the overflow submenu.\n *\n * @param event - The keydown event\n */\nfunction onSubmenuKeydown(event: KeyboardEvent): void {\n\tif (event.key === 'Escape') {\n\t\t// Close only the submenu, not the whole app menu. NcPopover restores\n\t\t// focus to the trigger via setReturnFocus.\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\toverflowOpened.value = false\n\t\treturn\n\t}\n\tconst next = nextIndex(event, overflowFocusedIndex.value, overflowActions.value.length, 'vertical')\n\tif (next === null) {\n\t\treturn\n\t}\n\toverflowFocusedIndex.value = next\n\toverflowItems[next]?.$el?.focus()\n}\n\n/**\n * Move the DOM focus to a cell of the row.\n *\n * @param index - Index of the roving stop\n */\nfunction focusRowItem(index: number): void {\n\tif (hasOverflow.value && index === rowActions.value.length) {\n\t\toverflowTrigger.value?.$el?.focus()\n\t\treturn\n\t}\n\trowItems[index]?.$el?.focus()\n}\n\n/**\n * Shared arrow-key handling for both roving contexts.\n *\n * @param event - The keydown event\n * @param current - Index of the currently focused item\n * @param total - Number of items in this context\n * @param orientation - Whether the items are laid out in a row or a column\n * @return The next index, or null if the key was not handled and has to keep\n * bubbling. Enter and Space activate the current item and return null.\n */\nfunction nextIndex(event: KeyboardEvent, current: number, total: number, orientation: 'horizontal' | 'vertical'): number | null {\n\t// Let modifier-bearing key combos fall through to the browser. Shift is\n\t// included so Shift+Enter opens the link in a new tab via the browser's\n\t// native modifier-aware <a> activation.\n\tif (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) {\n\t\treturn null\n\t}\n\tif (total === 0) {\n\t\treturn null\n\t}\n\n\tconst forward = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown'\n\tconst backward = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp'\n\tlet next: number\n\n\tswitch (event.key) {\n\t\tcase forward:\n\t\t\tnext = Math.min(current + 1, total - 1)\n\t\t\tbreak\n\t\tcase backward:\n\t\t\tnext = Math.max(current - 1, 0)\n\t\t\tbreak\n\t\tcase 'Home':\n\t\t\tnext = 0\n\t\t\tbreak\n\t\tcase 'End':\n\t\t\tnext = total - 1\n\t\t\tbreak\n\t\tcase 'Enter':\n\t\tcase ' ':\n\t\t\t// Space's default scrolls the popover, so intercept and click\n\t\t\t// programmatically. preventDefault also suppresses the native\n\t\t\t// activation of the <button> flavour, so this fires exactly once.\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tactivate(current, orientation)\n\t\t\treturn null\n\t\tdefault:\n\t\t\t// Tab, Escape and every other key falls through untouched.\n\t\t\treturn null\n\t}\n\n\t// Stop bubbling to document-level handlers (e.g. the Files app's keyboard\n\t// shortcuts) that would also act on arrow keys.\n\tevent.preventDefault()\n\tevent.stopPropagation()\n\treturn next\n}\n\n/**\n * Activate an item of either roving context by clicking it.\n *\n * @param index - Index of the item to activate\n * @param orientation - Which of the two contexts the index belongs to\n */\nfunction activate(index: number, orientation: 'horizontal' | 'vertical'): void {\n\tif (orientation === 'vertical') {\n\t\toverflowItems[index]?.$el?.click()\n\t\treturn\n\t}\n\tif (hasOverflow.value && index === rowActions.value.length) {\n\t\t// Toggles the submenu; the app menu itself stays open.\n\t\toverflowTrigger.value?.$el?.click()\n\t\treturn\n\t}\n\trowItems[index]?.$el?.click()\n}\n\n/** Collapse the submenu and let the app menu close as well. */\nfunction onOverflowActionClick(): void {\n\toverflowOpened.value = false\n\temit('click')\n}\n</script>\n\n<template>\n\t<div\n\t\tclass=\"app-menu-actions\"\n\t\trole=\"group\"\n\t\t:aria-label=\"t('core', 'Actions')\"\n\t\t@keydown=\"onRowKeydown\">\n\t\t<AppMenuAction\n\t\t\tv-for=\"(action, i) in rowActions\"\n\t\t\t:key=\"action.id\"\n\t\t\t:ref=\"(item) => setItem(rowItems, i, item)\"\n\t\t\t:action=\"action\"\n\t\t\t:tabindex=\"i === focusedIndex ? 0 : -1\"\n\t\t\t@click=\"emit('click')\" />\n\n\t\t<NcPopover\n\t\t\tv-if=\"hasOverflow\"\n\t\t\t:shown=\"overflowOpened\"\n\t\t\t:triggers=\"[]\"\n\t\t\tplacement=\"auto-end\"\n\t\t\tpopoverBaseClass=\"app-menu-actions__popover-base\"\n\t\t\tpopupRole=\"menu\"\n\t\t\t:setReturnFocus=\"returnFocusTarget\"\n\t\t\t@update:shown=\"overflowOpened = $event\">\n\t\t\t<template #trigger>\n\t\t\t\t<AppMenuItem\n\t\t\t\t\tref=\"overflowTrigger\"\n\t\t\t\t\t:app=\"overflowEntry\"\n\t\t\t\t\t:tabindex=\"focusedIndex === rowActions.length ? 0 : -1\"\n\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t:aria-expanded=\"overflowOpened ? 'true' : 'false'\"\n\t\t\t\t\t@click=\"overflowOpened = !overflowOpened\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<!-- Inline icon: the core dots asset ships a black fill,\n\t\t\t\t\t\t\twhich AppActionIcon would paint unchanged. -->\n\t\t\t\t\t\t<AppActionIcon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDotsHorizontal\" />\n\t\t\t\t\t\t</AppActionIcon>\n\t\t\t\t\t</template>\n\t\t\t\t</AppMenuItem>\n\t\t\t</template>\n\n\t\t\t<div\n\t\t\t\tclass=\"app-menu-actions__submenu\"\n\t\t\t\trole=\"menu\"\n\t\t\t\t:aria-label=\"overflowEntry.name\"\n\t\t\t\t@keydown=\"onSubmenuKeydown\">\n\t\t\t\t<AppMenuAction\n\t\t\t\t\tv-for=\"(action, i) in overflowActions\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:ref=\"(item) => setItem(overflowItems, i, item)\"\n\t\t\t\t\tcompact\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:tabindex=\"i === overflowFocusedIndex ? 0 : -1\"\n\t\t\t\t\t@click=\"onOverflowActionClick\" />\n\t\t\t</div>\n\t\t</NcPopover>\n\t</div>\n</template>\n\n<style scoped lang=\"scss\">\n.app-menu-actions {\n\t// The app grid is the scroll container, but this also keeps the row pinned\n\t// if the popover itself scrolls.\n\tposition: sticky;\n\tinset-block-end: 0;\n\tz-index: 1;\n\tflex-shrink: 0;\n\tbox-sizing: border-box;\n\tdisplay: grid;\n\t// Same columns as .app-menu__grid so the items align with the apps above.\n\tgrid-template-columns: repeat(4, var(--app-item-col-width, 69px));\n\tpadding: calc(var(--default-grid-baseline) * 2);\n\tborder-block-start: 1px solid var(--color-border);\n\tbackground-color: var(--color-main-background);\n\n\t// NcPopover's positioning element wraps the overflow trigger and has to\n\t// fill its grid cell to line the item up with the other columns.\n\t:deep(.v-popper) {\n\t\tdisplay: flex;\n\t}\n\n\t:deep(.app-item) {\n\t\twidth: 100%;\n\t}\n}\n</style>\n\n<!-- Teleported content; scoped styles can't reach it. -->\n<style lang=\"scss\">\n.app-menu-actions__popover-base .app-menu-actions__submenu {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n\tpadding: var(--default-grid-baseline);\n\tmin-width: 200px;\n\tmax-width: min(320px, calc(100vw - var(--default-grid-baseline) * 4));\n\tbackground-color: var(--color-main-background);\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { INavigationEntry } from '../types/navigation.d.ts'\n\nimport { mdiCog, mdiDotsGrid } from '@mdi/js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { isRTL, t } from '@nextcloud/l10n'\nimport { generateUrl, imagePath } from '@nextcloud/router'\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, useTemplateRef, watch } from 'vue'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcPopover from '@nextcloud/vue/components/NcPopover'\nimport AppMenuActions from './AppMenuActions.vue'\nimport AppMenuItem from './AppMenuItem.vue'\nimport { logger } from '../utils/logger.ts'\n\n// Settings IDs that represent actions, not navigable pages.\nconst SETTINGS_ACTION_IDS = new Set(['logout'])\n\nconst SETTINGS_SECTION_IDS = new Set(['settings_personal', 'settings_administration', 'accessibility_settings'])\n\n// The profile entry is named \"View profile\" for the account menu, which is an\n// action rather than a page name. The header shows where you are instead.\nconst PROFILE_ID = 'profile'\n\n// Entry of the app management page, the target of the \"More apps\" tile.\nconst APP_MANAGEMENT_ID = 'appstore'\n\n// Pause before hover opens the menu: the trigger sits in the corner, which\n// cursors cross on the way elsewhere.\nconst HOVER_OPEN_DELAY = 300\nconst HOVER_CLOSE_DELAY = 180\n// Ignore a trigger click this long after a hover-open, so it does not close again.\nconst HOVER_CLICK_GRACE = 500\n\n// Synthetic tile appended to the grid: admins jump to the local app management\n// page; everyone else lands on apps.nextcloud.com (external, opens in a new tab\n// via the per-tile newTab flag).\nconst moreAppsEntry: INavigationEntry = {\n\tid: 'more-apps',\n\tactive: false,\n\torder: Number.MAX_SAFE_INTEGER,\n\thref: generateUrl('/settings/apps'),\n\ticon: imagePath('core', 'actions/add.svg'),\n\ttype: 'link',\n\tname: t('core', 'More apps'),\n\tunread: 0,\n}\n\nconst appStoreEntry: INavigationEntry = {\n\tid: 'app-store',\n\tactive: false,\n\torder: Number.MAX_SAFE_INTEGER,\n\thref: 'https://apps.nextcloud.com/',\n\ticon: imagePath('core', 'actions/add.svg'),\n\ttype: 'link',\n\tname: t('core', 'App store'),\n\tunread: 0,\n}\n\n// `placement: bottom-start` swaps the anchor edge under RTL but the skidding\n// sign isn't auto-mirrored, so it is flipped here. Nextcloud's language\n// doesn't change at runtime.\nconst popoverSkidding = isRTL() ? 82 : -82 // the width of the product logo + main container margin\n\nconst navigationActions = loadState<INavigationEntry[]>('core', 'navigationActions', [])\nconst settingsList = loadState<Record<string, INavigationEntry>>('core', 'settingsNavEntries', {})\n// Fail closed: a missing state must not leak the link.\nconst appStoreLinkShown = loadState<boolean>('core', 'appStoreLinkShown', false)\nconst isAdmin = getCurrentUser()?.isAdmin ?? false\n\nconst root = useTemplateRef('root')\nconst grid = useTemplateRef('grid')\n\nconst appList = ref(loadState<INavigationEntry[]>('core', 'apps', []))\nconst opened = ref(false)\n// Roving tabindex: only this tile has tabindex=0; arrow keys move it.\nconst focusedIndex = ref(0)\n// Which button opened the menu, so focus returns to it.\nconst openedFrom = ref<'waffle' | 'currentApp' | null>(null)\n// Opened by hover: run without the focus trap, so focus is not stolen.\nconst hoverOpen = ref(false)\n// Grace window where a trigger click does not close the menu.\nconst suppressCloseClick = ref(false)\n\n// Hover intent timers (see HOVER_OPEN_DELAY / HOVER_CLOSE_DELAY).\nlet openTimer: ReturnType<typeof setTimeout> | null = null\nlet closeTimer: ReturnType<typeof setTimeout> | null = null\nlet suppressClickTimer: ReturnType<typeof setTimeout> | null = null\nlet clicks = 0\nlet clickTimestamp = 0\n\n/**\n * The tile at a position of the grid, whose children are the tiles in order.\n *\n * @param index - Position of the tile\n */\nfunction gridItem(index: number): HTMLElement | undefined {\n\treturn grid.value?.children[index] as HTMLElement | undefined\n}\n\n// Only pass noFocusTrap for hover opens; clicks and keyboard keep the trap.\nconst popoverAttrs = computed(() => hoverOpen.value\n\t? { autoHide: autoHideCheck, noFocusTrap: true }\n\t: { autoHide: autoHideCheck })\n\n// Fall back to the active settings entry on admin pages where no app is active.\nconst currentApp = computed<INavigationEntry | undefined>(() => appList.value.find((app) => app.active)\n\t?? Object.values(settingsList).find((entry) => entry.active && !SETTINGS_ACTION_IDS.has(entry.id)))\n\nconst isSettingsSection = computed(() => currentApp.value !== undefined && SETTINGS_SECTION_IDS.has(currentApp.value.id))\n\nconst displayName = computed(() => {\n\tif (!currentApp.value) {\n\t\treturn ''\n\t}\n\tif (isSettingsSection.value) {\n\t\treturn t('core', 'Settings')\n\t}\n\treturn currentApp.value.id === PROFILE_ID\n\t\t? t('core', 'Profile')\n\t\t: currentApp.value.name\n})\n\n// The profile entry ships no icon of its own, so use the generic one.\nconst currentAppIcon = computed(() => currentApp.value?.id === PROFILE_ID\n\t? imagePath('core', 'actions/user.svg')\n\t: currentApp.value?.icon ?? '')\n\n// Masked like AppIcon.vue, so dark icons stay legible on the header.\n// Escaped so a crafted path cannot break out of the url() token.\nconst currentAppIconStyle = computed(() => ({\n\t'--app-icon-url': `url(\"${currentAppIcon.value.replace(/[\"\\\\]/g, '\\\\$&')}\")`,\n}))\n\n// aria-label overrides the inner span text, so the displayed name has to be\n// duplicated here for screen readers.\nconst currentAppLabel = computed(() => currentApp.value\n\t? t('core', 'Open apps menu, currently in {app}', { app: displayName.value })\n\t: t('core', 'Open apps menu'))\n\n// Stable-ordered list that focusedIndex indexes into. The trailing utility tile\n// is \"More apps\" (local app management) for admins and \"App store\"\n// (apps.nextcloud.com) for everyone else when appstore_link_shown allows it.\nconst gridItems = computed(() => {\n\tconst tail: INavigationEntry[] = []\n\tif (isAdmin) {\n\t\ttail.push({ ...moreAppsEntry, active: currentApp.value?.id === APP_MANAGEMENT_ID })\n\t} else if (appStoreLinkShown) {\n\t\ttail.push(appStoreEntry)\n\t}\n\treturn [...appList.value, ...tail]\n})\n\n// On open, land the roving stop on the active app rather than index 0 and\n// measure the grid as soon as it mounts (before the open transition finishes,\n// so the cap is set without a flash).\nwatch(opened, (isOpen) => {\n\tif (isOpen) {\n\t\tfocusedIndex.value = activeGridIndex()\n\t\ttryRecomputeGridMaxHeight(5)\n\t} else {\n\t\t// Closed again: end any pending click-grace window.\n\t\tclearSuppressClickTimer()\n\t\tsuppressCloseClick.value = false\n\t}\n})\n\nonMounted(() => {\n\tsubscribe('nextcloud:app-menu.refresh', setApps)\n\t// Pre-seed so the correct tile has tabindex=0 before first open.\n\tfocusedIndex.value = activeGridIndex()\n})\n\nonBeforeUnmount(() => {\n\tclearOpenTimer()\n\tclearCloseTimer()\n\tclearSuppressClickTimer()\n\tunsubscribe('nextcloud:app-menu.refresh', setApps)\n})\n\ndefineExpose({ setNavigationCounter })\n\n/**\n * focus-trap calls this on deactivation. NcPopover defaults to the slot trigger\n * (waffle); this override makes current-app opens return there instead. Waffle\n * is the fallback since current-app only renders when an app is active.\n */\nfunction returnFocusTarget(): HTMLElement | null {\n\treturn openedFrom.value === 'currentApp'\n\t\t? root.value?.querySelector('.app-menu__current-app') ?? null\n\t\t: root.value?.querySelector('.app-menu__waffle') ?? null\n}\n\n/**\n * Blocks the popover's outside-click close during the grace window.\n */\nfunction autoHideCheck(): boolean {\n\treturn !suppressCloseClick.value\n}\n\n/**\n * Reset the state of the last opening once the popover is hidden.\n */\nfunction onPopoverAfterHide() {\n\topenedFrom.value = null\n\thoverOpen.value = false\n}\n\n/**\n * @param source - The trigger button that was clicked\n */\nfunction onTriggerClick(source: 'waffle' | 'currentApp') {\n\t// Drop pending hover timers so they don't undo this toggle.\n\tclearOpenTimer()\n\tclearCloseTimer()\n\t// Ignore the click that would close what hover just opened.\n\tif (opened.value && suppressCloseClick.value) {\n\t\treturn\n\t}\n\t// Explicit click: keep the focus trap.\n\thoverOpen.value = false\n\topenedFrom.value = source\n\topened.value = !opened.value\n\n\tconst now = Date.now()\n\tif (clickTimestamp !== 0 && now - clickTimestamp > 10000) {\n\t\tclicks = 0\n\t}\n\tclickTimestamp = now\n\tclicks++\n\tif (clicks > 20 && !matchMedia('(prefers-reduced-motion: reduce)').matches && !document.body.hasAttribute('data-theme-reduced-motion')) {\n\t\tconst styleTag = document.createElement('style')\n\t\tstyleTag.innerHTML = '@keyframes bodyAnimation { 0% {transform: rotate3d(0,0,0,0);} 25% {transform: rotate3d(' + (Math.floor(Math.random() * 3) - 1) + ',' + (Math.floor(Math.random() * 3) - 1) + ',' + (Math.floor(Math.random() * 3) - 1) + ',' + Math.floor(Math.random() * 360) + 'deg);} 50% {transform: rotate3d(' + (Math.floor(Math.random() * 3) - 1) + ',' + (Math.floor(Math.random() * 3) - 1) + ',' + (Math.floor(Math.random() * 3) - 1) + ',' + Math.floor(Math.random() * 360) + 'deg);} 75% {transform: rotate3d(0,0,0,0);} 100% {transform: rotate3d(0,0,0,0);}}'\n\t\tdocument.body.appendChild(styleTag)\n\t\tdocument.body.setAttribute('style', 'animation-name:bodyAnimation;animation-duration:10s;animation-iteration-count:infinite;animation-direction:alternate')\n\t} else if (clicks > 15) {\n\t\tdocument.body.setAttribute('style', 'filter:sepia(' + Math.floor(Math.random() * 100) + '%) invert(' + Math.floor(Math.random() * 2) * 100 + '%) hue-rotate(' + (Math.floor(Math.random() * 360)) + 'deg) blur(' + Math.floor(clicks / 30) + 'px);transition:filter 1s !important')\n\t}\n}\n\n/**\n * Hover-to-open, mouse only so keyboard focus never triggers it.\n *\n * @param source - The trigger the cursor entered\n */\nfunction onTriggerPointerEnter(source: 'waffle' | 'currentApp' = 'waffle') {\n\tif (!canHoverOpen()) {\n\t\treturn\n\t}\n\tclearCloseTimer()\n\tif (opened.value) {\n\t\treturn\n\t}\n\tclearOpenTimer()\n\topenTimer = setTimeout(() => {\n\t\topenTimer = null\n\t\topenedFrom.value = source\n\t\thoverOpen.value = true\n\t\topened.value = true\n\t\t// Start the grace window in which a habitual click won't close it.\n\t\tsuppressCloseClick.value = true\n\t\tclearSuppressClickTimer()\n\t\tsuppressClickTimer = setTimeout(() => {\n\t\t\tsuppressClickTimer = null\n\t\t\tsuppressCloseClick.value = false\n\t\t}, HOVER_CLICK_GRACE)\n\t}, HOVER_OPEN_DELAY)\n}\n\n/**\n * Only real pointers open on hover: on touch a tap fires mouseenter too, and an\n * unfocused window should not pop the menu when the cursor rests there.\n */\nfunction canHoverOpen(): boolean {\n\tconst pointer = window.matchMedia?.('(hover: hover) and (pointer: fine)')\n\treturn (pointer?.matches ?? true) && document.hasFocus()\n}\n\n/**\n * Cursor left: cancel a pending open, schedule the close.\n */\nfunction onPointerLeave() {\n\tclearOpenTimer()\n\tscheduleClose()\n\tclicks = 0\n}\n\n/**\n * Cursor moved into the open popover: keep it open.\n */\nfunction onPopoverPointerEnter() {\n\tclearCloseTimer()\n}\n\n/**\n * Close the menu after the grace delay of a leaving cursor.\n */\nfunction scheduleClose() {\n\tclearCloseTimer()\n\tcloseTimer = setTimeout(() => {\n\t\tcloseTimer = null\n\t\topened.value = false\n\t}, HOVER_CLOSE_DELAY)\n}\n\n/**\n * Cancel a pending hover-open.\n */\nfunction clearOpenTimer() {\n\tif (openTimer !== null) {\n\t\tclearTimeout(openTimer)\n\t\topenTimer = null\n\t}\n}\n\n/**\n * Cancel a pending hover-close.\n */\nfunction clearCloseTimer() {\n\tif (closeTimer !== null) {\n\t\tclearTimeout(closeTimer)\n\t\tcloseTimer = null\n\t}\n}\n\n/**\n * End the click-grace window early.\n */\nfunction clearSuppressClickTimer() {\n\tif (suppressClickTimer !== null) {\n\t\tclearTimeout(suppressClickTimer)\n\t\tsuppressClickTimer = null\n\t}\n}\n\n/**\n * Show the number of unread notifications of an app on its tile.\n *\n * @param id - The app id\n * @param counter - The number of unread notifications\n */\nfunction setNavigationCounter(id: string, counter: number) {\n\tconst app = appList.value.find(({ app }) => app === id)\n\tif (app) {\n\t\tapp.unread = counter\n\t} else {\n\t\tlogger.warn(`Could not find app \"${id}\" for setting navigation count`)\n\t}\n}\n\n/**\n * Replace the apps of the menu, e.g. after an app was enabled.\n *\n * @param payload - The event payload\n * @param payload.apps - The new list of apps\n */\nfunction setApps({ apps }: { apps: INavigationEntry[] }) {\n\tappList.value = apps\n\tif (focusedIndex.value >= gridItems.value.length) {\n\t\tfocusedIndex.value = activeGridIndex()\n\t}\n}\n\n/**\n * Poll briefly for the grid (NcPopover renders the slot async) then measure\n * once. Bounded so a missing grid can never leak frames.\n *\n * @param retries - Remaining animation frames to wait for the grid\n */\nfunction tryRecomputeGridMaxHeight(retries: number) {\n\tif (!opened.value || retries <= 0) {\n\t\treturn\n\t}\n\tif (!grid.value) {\n\t\trequestAnimationFrame(() => tryRecomputeGridMaxHeight(retries - 1))\n\t\treturn\n\t}\n\trecomputeGridMaxHeight()\n}\n\n/**\n * Cap = sum of first 6 row heights + baseline × 6, so the peek of row 7 stays\n * constant when wraps grow rows.\n */\nfunction recomputeGridMaxHeight() {\n\tif (!grid.value) {\n\t\treturn\n\t}\n\tconst VISIBLE_CELLS = 24 // 4 cols × 6 visible rows\n\tconst cells = grid.value.children\n\tif (cells.length <= VISIBLE_CELLS) {\n\t\tgrid.value.style.maxHeight = ''\n\t\treturn\n\t}\n\tconst firstHidden = cells[VISIBLE_CELLS] as HTMLElement | undefined\n\tconst firstCell = cells[0] as HTMLElement | undefined\n\tif (!firstHidden || !firstCell) {\n\t\treturn\n\t}\n\tconst sumOfFirstRows = firstHidden.getBoundingClientRect().top\n\t\t- firstCell.getBoundingClientRect().top\n\tconst baseline = parseFloat(getComputedStyle(grid.value).getPropertyValue('--default-grid-baseline')) || 4\n\tgrid.value.style.maxHeight = `${sumOfFirstRows + baseline * 6}px`\n}\n\n/**\n * Index of the active app within `gridItems`, or 0 if none is active.\n */\nfunction activeGridIndex(): number {\n\tconst index = gridItems.value.findIndex((app) => app.active)\n\treturn index === -1 ? 0 : index\n}\n\n/**\n * Roving-tabindex keyboard contract for the launcher grid. Arrow keys clamp at\n * edges (no wrap), matching the WAI-ARIA grid pattern. Tab is intentionally not\n * handled so the browser's native focus order moves out of the grid.\n *\n * @param event - The keydown event\n */\nasync function onGridKeydown(event: KeyboardEvent) {\n\t// Let modifier-bearing key combos fall through to the browser. Shift is\n\t// included so Shift+Enter opens the link in a new tab via the browser's\n\t// native modifier-aware <a> activation.\n\tif (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) {\n\t\treturn\n\t}\n\n\tif (gridItems.value.length === 0) {\n\t\treturn\n\t}\n\n\tconst cols = 4\n\tconst total = gridItems.value.length\n\tconst i = focusedIndex.value\n\tlet next = i\n\n\tswitch (event.key) {\n\t\tcase 'ArrowRight': {\n\t\t\t// Clamp at the row's right edge; never wrap to the next row.\n\t\t\tconst atRowEnd = (i % cols) === cols - 1\n\t\t\tif (!atRowEnd && i + 1 < total) {\n\t\t\t\tnext = i + 1\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcase 'ArrowLeft': {\n\t\t\tconst atRowStart = (i % cols) === 0\n\t\t\tif (!atRowStart) {\n\t\t\t\tnext = i - 1\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcase 'ArrowDown': {\n\t\t\tif (i + cols < total) {\n\t\t\t\tnext = i + cols\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcase 'ArrowUp': {\n\t\t\tif (i - cols >= 0) {\n\t\t\t\tnext = i - cols\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcase 'Home':\n\t\t\tnext = 0\n\t\t\tbreak\n\t\tcase 'End':\n\t\t\tnext = total - 1\n\t\t\tbreak\n\t\tcase 'Enter':\n\t\tcase ' ': {\n\t\t\t// Space's default scrolls the nearest scrollable ancestor (the\n\t\t\t// popover); intercept and click programmatically. Enter gets the\n\t\t\t// same treatment so the popover closes uniformly.\n\t\t\tgridItem(focusedIndex.value)?.click()\n\t\t\topened.value = false\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\treturn\n\t\t}\n\t\tdefault:\n\t\t\t// Tab and every other key falls through untouched.\n\t\t\treturn\n\t}\n\n\t// Stop bubbling to document-level handlers (e.g. the Files app's keyboard\n\t// shortcuts) that would also act on arrow keys.\n\tevent.preventDefault()\n\tevent.stopPropagation()\n\tif (next !== i) {\n\t\tfocusedIndex.value = next\n\t}\n\n\tawait nextTick()\n\tgridItem(focusedIndex.value)?.focus()\n}\n</script>\n\n<template>\n\t<nav ref=\"root\" class=\"app-menu\" :aria-label=\"t('core', 'Applications')\">\n\t\t<NcPopover\n\t\t\tv-model:shown=\"opened\"\n\t\t\t:triggers=\"[]\"\n\t\t\tv-bind=\"popoverAttrs\"\n\t\t\tplacement=\"bottom-start\"\n\t\t\t:skidding=\"popoverSkidding\"\n\t\t\t:setReturnFocus=\"returnFocusTarget\"\n\t\t\tpopoverBaseClass=\"app-menu__popover-base\"\n\t\t\tpopupRole=\"menu\"\n\t\t\t@afterHide=\"onPopoverAfterHide\">\n\t\t\t<!-- Both buttons are the trigger, so they share one highlight and either\n\t\t\t\tone opens the menu. On narrow screens only the waffle shows. -->\n\t\t\t<template #trigger>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"app-menu__trigger\"\n\t\t\t\t\t:class=\"{ 'app-menu__trigger--open': opened }\"\n\t\t\t\t\t@mouseenter=\"onTriggerPointerEnter()\"\n\t\t\t\t\t@mouseleave=\"onPointerLeave\">\n\t\t\t\t\t<NcButton\n\t\t\t\t\t\tclass=\"app-menu__waffle\"\n\t\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t\t:aria-label=\"t('core', 'Open apps menu')\"\n\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t:aria-expanded=\"opened ? 'true' : 'false'\"\n\t\t\t\t\t\t@click=\"onTriggerClick('waffle')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDotsGrid\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton\n\t\t\t\t\t\tv-if=\"currentApp\"\n\t\t\t\t\t\tclass=\"app-menu__current-app\"\n\t\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t\t:aria-label=\"currentAppLabel\"\n\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t:aria-expanded=\"opened ? 'true' : 'false'\"\n\t\t\t\t\t\t@click=\"onTriggerClick('currentApp')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<!-- Settings sections and entries without an icon show a generic cog. -->\n\t\t\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\t\t\tv-if=\"isSettingsSection || !currentAppIcon\"\n\t\t\t\t\t\t\t\tclass=\"app-menu__current-app-cog\"\n\t\t\t\t\t\t\t\t:path=\"mdiCog\"\n\t\t\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t\t\t\t<!-- Outer element carries the header fade, inner one the icon shape. -->\n\t\t\t\t\t\t\t<span v-else class=\"app-menu__current-app-icon\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"app-menu__current-app-glyph\"\n\t\t\t\t\t\t\t\t\t:style=\"currentAppIconStyle\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"app-menu__current-app-name\">\n\t\t\t\t\t\t\t{{ displayName }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<div\n\t\t\t\tclass=\"app-menu__popover\"\n\t\t\t\trole=\"menu\"\n\t\t\t\t:aria-label=\"t('core', 'Apps')\"\n\t\t\t\t@mouseenter=\"onPopoverPointerEnter\"\n\t\t\t\t@mouseleave=\"onPointerLeave\">\n\t\t\t\t<div ref=\"grid\" class=\"app-menu__grid\" @keydown=\"onGridKeydown\">\n\t\t\t\t\t<AppMenuItem\n\t\t\t\t\t\tv-for=\"(item, i) in gridItems\"\n\t\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\t\t:app=\"item\"\n\t\t\t\t\t\t:outlined=\"item.id === 'more-apps' || item.id === 'app-store'\"\n\t\t\t\t\t\t:newTab=\"item.id === 'app-store'\"\n\t\t\t\t\t\t:tabindex=\"i === focusedIndex ? 0 : -1\" />\n\t\t\t\t</div>\n\t\t\t\t<AppMenuActions\n\t\t\t\t\tv-if=\"navigationActions.length > 0\"\n\t\t\t\t\t:actions=\"navigationActions\"\n\t\t\t\t\t@click=\"opened = false\" />\n\t\t\t</div>\n\t\t</NcPopover>\n\t</nav>\n</template>\n\n<style scoped lang=\"scss\">\n.app-menu {\n\tdisplay: flex;\n\talign-items: center;\n\n\t// Wrapper for both triggers: full header height for the click area, with one\n\t// shared highlight spanning the waffle and the current app.\n\t&__trigger {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: var(--header-height);\n\t\t// Own stacking context so the highlight can sit behind the buttons.\n\t\tisolation: isolate;\n\n\t\t// The shared highlight, inset from top/bottom so it stays smaller than the\n\t\t// header. inset-inline: 0 spans both triggers; collapses to the waffle when\n\t\t// the current-app button is hidden.\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\tinset-block: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n\t\t\tinset-inline: 0;\n\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t// Behind the buttons (whose backgrounds stay transparent).\n\t\t\tz-index: -1;\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\t// Translucent black: --color-background-hover has too little contrast on the\n\t\t// header tint. Keep the highlight while the menu is open.\n\t\t&:hover::before,\n\t\t&--open::before {\n\t\t\tbackground-color: rgba(0, 0, 0, 0.1);\n\t\t}\n\n\t\t&:active::before {\n\t\t\tbackground-color: rgba(0, 0, 0, 0.15);\n\t\t}\n\t}\n\n\t&__waffle,\n\t&__current-app {\n\t\t// Full header height for the click area; the highlight is on __trigger, so\n\t\t// the buttons stay transparent. !important beats NcButton's scoped rules.\n\t\theight: var(--header-height) !important;\n\t\t// Anchor the per-button focus ring below to the button, not __trigger.\n\t\tposition: relative;\n\n\t\t// NcButton's tertiary-no-background variant uses --color-main-text,\n\t\t// which is dark on light themes. The header sits on the theme primary\n\t\t// background, so override to use the matching plain-text color.\n\t\t--color-main-text: var(--color-background-plain-text);\n\t\tcolor: var(--color-background-plain-text);\n\n\t\t// Hide NcButton's own hover/active fill so only the __trigger highlight\n\t\t// shows. The extra .button-vue makes this win over NcButton's rule.\n\t\t&.button-vue:hover:not(:disabled),\n\t\t&.button-vue:active:not(:disabled) {\n\t\t\tbackground-color: transparent !important;\n\t\t}\n\n\t\t// Per-button keyboard focus ring, matched to the highlight pill. Hide\n\t\t// NcButton's own ring (outline + halo); the extra .button-vue makes our\n\t\t// override win over it.\n\t\t&.button-vue:focus-visible {\n\t\t\toutline: none !important;\n\t\t\tbox-shadow: none !important;\n\t\t}\n\n\t\t&.button-vue:focus-visible::before {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\tinset-block: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n\t\t\tinset-inline: 0;\n\t\t\tborder-radius: var(--border-radius-element);\n\t\t\tbox-shadow: inset 0 0 0 2px var(--color-background-plain-text);\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\t&__current-app {\n\t\t// Lets the inner label shrink to its max-width and ellipsize instead of\n\t\t// pushing the button wider than the inline-flex text slot.\n\t\t:deep(.button-vue__text) {\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t@media only screen and (max-width: 1024px) {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__current-app-icon {\n\t\tdisplay: flex;\n\t\twidth: calc(var(--default-grid-baseline) * 5);\n\t\theight: calc(var(--default-grid-baseline) * 5);\n\t\t// Vertical alpha fade, like the cog and the other header icons.\n\t\tmask: var(--header-menu-icon-mask);\n\t}\n\n\t&__current-app-glyph {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Masked rather than shown: app icons ship a hardcoded fill, so the\n\t\t// color has to come from the background. Matches AppIcon.vue.\n\t\tbackground-color: var(--color-background-plain-text);\n\t\tmask: var(--app-icon-url) center / contain no-repeat;\n\t}\n\n\t// Masked backgrounds are not force-adjusted the way <img> is.\n\t@media (forced-colors: active) {\n\t\t&__current-app-glyph {\n\t\t\tbackground-color: CanvasText;\n\t\t}\n\t}\n\n\t&__current-app-cog {\n\t\tmask: var(--header-menu-icon-mask);\n\t}\n\n\t&__current-app-name {\n\t\t// inline-block: inline elements ignore max-width + overflow.\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tfont-size: var(--default-font-size);\n\t\tfont-weight: 500;\n\t\twhite-space: nowrap;\n\t\tletter-spacing: -0.5px;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\t// Cap width so long localized labels ellipsize instead of pushing\n\t\t// the header icons off-screen (.header-start doesn't shrink).\n\t\tmax-width: clamp(80px, 22vw, 320px);\n\t}\n\n\t&__popover {\n\t\t// Shared by the app grid and the actions row below it, so both use the\n\t\t// same column raster.\n\t\t--app-item-col-width: 69px;\n\t\t--app-item-row-height: calc(15 * var(--default-grid-baseline) + 1.5 * var(--default-font-size)); // 12x for icon + 3x for padding + text\n\t\t// Column flex so the actions row keeps its height and the grid owns\n\t\t// the remaining space (and the scrolling).\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tmax-height: calc(100vh - var(--header-height) - var(--default-grid-baseline));\n\t\tmax-width: calc(100vw - var(--default-grid-baseline) * 4);\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t&__grid {\n\t\t// border-box: the JS-set max-height (see recomputeGridMaxHeight)\n\t\t// needs to include padding for the peek math to hold.\n\t\tbox-sizing: border-box;\n\t\tpadding: calc(var(--default-grid-baseline) * 2);\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(4, var(--app-item-col-width));\n\t\tgrid-auto-rows: minmax(var(--app-item-row-height), max-content);\n\t\t// Allows the grid to shrink below its content height inside the\n\t\t// column flex parent, so the scroll cap always applies.\n\t\tmin-height: 0;\n\t\t// max-height set inline by recomputeGridMaxHeight(); CSS just owns the scroll.\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\n\t\t// Extra top padding on first-row tiles so the hover bg reads\n\t\t// concentric with the popover's rounded top corner. !important\n\t\t// because AppItem's scoped rule has the same specificity.\n\t\t> :nth-child(-n+4) {\n\t\t\tpadding-block-start: calc(var(--default-grid-baseline) * 2) !important;\n\t\t}\n\n\t\t// WebKit equivalents are in the unscoped block below: scoped CSS\n\t\t// data-attrs don't reach ::-webkit-scrollbar pseudo-elements in Chrome.\n\t\tscrollbar-width: thin;\n\t\tscrollbar-color: var(--color-scrollbar) transparent;\n\t}\n}\n</style>\n\n<!-- Teleported content; scoped styles can't reach it. -->\n<style lang=\"scss\">\n.app-menu__popover-base {\n\t--border-radius-element: var(--border-radius-container-large);\n}\n\n// No arrow: the menu reads as a panel below the header, not a tooltip.\n.app-menu__popover-base .v-popper__arrow-container {\n\tdisplay: none;\n}\n\n// Cancel NcPopover's 4px distance so the menu starts right below the header.\n.app-menu__popover-base .v-popper__wrapper {\n\tmargin-block-start: -4px;\n}\n\n// Without this reset the override above cascades into AppItem and inflates\n// its hover radius. Restores the system default from apps/theming/css/default.css.\n.app-menu__popover-base .app-menu__popover {\n\t--border-radius-element: 8px;\n}\n\n// Outside the scoped block: ::-webkit-scrollbar pseudo-elements need unscoped\n// CSS to bind in Chrome. !important: core/css/styles.scss forces a 12 px thumb.\n.app-menu__popover-base .app-menu__grid {\n\tscrollbar-width: thin !important;\n\tscrollbar-color: var(--color-scrollbar) transparent !important;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 6px !important;\n\t\theight: 6px !important;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: transparent !important;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground-color: var(--color-scrollbar) !important;\n\t\tborder: none !important;\n\t\tborder-radius: 3px !important;\n\t\tbackground-clip: padding-box !important;\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport AppMenu from './AppMenu.vue'\nimport { mountInPlace } from '../utils/mountInPlace.ts'\n\n/**\n * Set up the main menu component (\"AppMenu\")\n * This is the top left menu where users can navigate between different apps.\n */\nexport function setUp() {\n\tconst container = document.getElementById('header-start__appmenu')\n\tif (!container) {\n\t\t// no container, possibly we're on a public page\n\t\treturn\n\t}\n\tconst appMenu = mountInPlace(createApp(AppMenu), container) as InstanceType<typeof AppMenu>\n\n\tObject.assign(window.OC, {\n\t\tsetNavigationCounter(id: string, counter: number) {\n\t\t\tappMenu.setNavigationCounter(id, counter)\n\t\t},\n\t})\n}\n","<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport QR from '@chenfengyuan/vue-qrcode'\nimport { t } from '@nextcloud/l10n'\nimport { getBaseUrl } from '@nextcloud/router'\nimport { useFormatRelativeTime } from '@nextcloud/vue/composables/useFormatDateTime'\nimport { computed } from 'vue'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\n\nconst props = defineProps<{\n\tdata: {\n\t\ttoken?: string\n\t\tloginName?: string\n\t\tdeviceToken?: {\n\t\t\tid: number\n\t\t\tname: string\n\t\t\tlastActivity: number\n\t\t\ttype: number\n\t\t\tscope: {\n\t\t\t\tfilesystem: boolean\n\t\t\t}\n\t\t\tcanDelete: boolean\n\t\t\tcanRename: boolean\n\t\t}\n\t}\n}>()\n\nconst emit = defineEmits<{\n\t(event: 'close', value?: unknown): void\n}>()\n\nconst productName = window.OC.theme.productName as string\n\nconst buttons = [{\n\tlabel: t('spreed', 'Done'),\n\tvariant: 'primary',\n\tcallback: () => undefined,\n}]\n\nconst isOneTimeToken = (props.data?.deviceToken?.type ?? 1) === 3\n\nconst qrUrl = computed(() => {\n\tconst user = props.data?.loginName ?? ''\n\tconst password = props.data?.token ?? ''\n\tconst path = isOneTimeToken ? 'onetime-login' : 'login'\n\tconst server = getBaseUrl()\n\n\t// TODO return different result for error handling (to not provide invalid URL)\n\treturn `nc://${path}/user:${user}&password:${password}&server:${server}`\n})\n\nconst expirationTimestamp = (props.data?.deviceToken?.lastActivity ? props.data.deviceToken.lastActivity * 1_000 : Date.now()) + 120_000\nconst expireTimeout = setTimeout(() => {\n\tonClosing('expired')\n}, expirationTimestamp - Date.now())\nconst timeCountdown = useFormatRelativeTime(expirationTimestamp)\n\n/**\n * Emit result, if any (for spawnDialog callback)\n *\n * @param result callback result\n */\nfunction onClosing(result: unknown) {\n\tclearTimeout(expireTimeout)\n\temit('close', result)\n}\n</script>\n\n<template>\n\t<NcDialog\n\t\t:name=\"t('core', 'Scan QR code to log in')\"\n\t\t:buttons=\"buttons\"\n\t\t@closing=\"onClosing\">\n\t\t<div class=\"qr-login__content\">\n\t\t\t<p class=\"qr-login__description\">\n\t\t\t\t{{ t('core', 'Use {productName} mobile client you want to connect to scan the code', { productName }) }}\n\t\t\t</p>\n\t\t\t<QR :value=\"qrUrl\" />\n\t\t\t<template v-if=\"isOneTimeToken\">\n\t\t\t\t<!-- TRANSLATORS Intl will provide a conjunction, e.g. 'Code will expire in 30 seconds' -->\n\t\t\t\t{{ t('core', 'Code will expire {timeCountdown} or after use', { timeCountdown }) }}\n\t\t\t</template>\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<style lang=\"scss\">\n.qr-login__content {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: var(--default-grid-baseline);\n}\n\n.qr-login__description {\n\ttext-align: center;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { ITokenResponse } from '~/apps/settings/src/authtokens/store/authtoken.ts'\n\nimport { mdiQrcodeScan } from '@mdi/js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { onBeforeUnmount, onMounted, ref } from 'vue'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcListItem from '@nextcloud/vue/components/NcListItem'\nimport AccountQrLoginDialog from './AccountQRLoginDialog.vue'\n\ndefineProps<{\n\tid: string\n\tname: string\n\thref: string\n\tactive: boolean\n}>()\n\naddPasswordConfirmationInterceptors(axios)\n\n// @ts-expect-error capabilities is missing the capability to type it...\nconst canCreateAppToken = getCapabilities().core?.['can-create-app-token'] ?? false\n\nconst profileEnabled = ref(loadState('user_status', 'profileEnabled', { profileEnabled: false }).profileEnabled)\nconst displayName = ref(getCurrentUser()!.displayName ?? getCurrentUser()!.uid)\n\nonMounted(() => {\n\tsubscribe('settings:profile-enabled:updated', handleProfileEnabledUpdate)\n\tsubscribe('settings:display-name:updated', handleDisplayNameUpdate)\n})\n\nonBeforeUnmount(() => {\n\tunsubscribe('settings:profile-enabled:updated', handleProfileEnabledUpdate)\n\tunsubscribe('settings:display-name:updated', handleDisplayNameUpdate)\n})\n\n/**\n * Create a one-time app password and show it as QR code for the mobile apps.\n */\nasync function handleQrCodeClick() {\n\tconst { data } = await axios.post<ITokenResponse>(\n\t\tgenerateUrl('/settings/personal/authtokens'),\n\t\t{ qrcodeLogin: true },\n\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t)\n\n\tawait spawnDialog(AccountQrLoginDialog, { data })\n}\n\n/**\n * @param enabled - Whether the profile is enabled now\n */\nfunction handleProfileEnabledUpdate(enabled: boolean) {\n\tprofileEnabled.value = enabled\n}\n\n/**\n * @param name - The new display name\n */\nfunction handleDisplayNameUpdate(name: string) {\n\tdisplayName.value = name\n}\n</script>\n\n<template>\n\t<NcListItem\n\t\t:id=\"profileEnabled ? undefined : id\"\n\t\t:anchorId=\"id\"\n\t\t:active=\"active\"\n\t\tcompact\n\t\t:href=\"profileEnabled ? href : undefined\"\n\t\t:name=\"displayName\"\n\t\ttarget=\"_self\">\n\t\t<template v-if=\"profileEnabled\" #subname>\n\t\t\t{{ name }}\n\t\t</template>\n\t\t<template v-if=\"canCreateAppToken\" #extra-actions>\n\t\t\t<NcButton\n\t\t\t\t:aria-label=\"t('core', 'Show QR code for mobile app login')\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\t@click=\"handleQrCodeClick\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiQrcodeScan\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcListItem>\n</template>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<script setup lang=\"ts\">\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { emit, subscribe } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { computed, onMounted, ref } from 'vue'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcHeaderMenu from '@nextcloud/vue/components/NcHeaderMenu'\nimport AccountMenuEntry from '../components/AccountMenu/AccountMenuEntry.vue'\nimport AccountMenuProfileEntry from '../components/AccountMenu/AccountMenuProfileEntry.vue'\nimport { getAllStatusOptions } from '../../../apps/user_status/src/services/statusOptionsService.js'\n\ninterface ISettingsNavigationEntry {\n\t/**\n\t * id of the entry, used as HTML ID, for example, \"settings\"\n\t */\n\tid: string\n\t/**\n\t * Label of the entry, for example, \"Personal Settings\"\n\t */\n\tname: string\n\t/**\n\t * Icon of the entry, for example, \"/apps/settings/img/personal.svg\"\n\t */\n\ticon: string\n\t/**\n\t * Type of the entry\n\t */\n\ttype: 'settings' | 'link' | 'guest'\n\t/**\n\t * Link of the entry, for example, \"/settings/user\"\n\t */\n\thref: string\n\t/**\n\t * Whether the entry is active\n\t */\n\tactive: boolean\n\t/**\n\t * Order of the entry\n\t */\n\torder: number\n\t/**\n\t * Number of unread pf this items\n\t */\n\tunread: number\n\t/**\n\t * Classes for custom styling\n\t */\n\tclasses: string\n}\n\ninterface IPreloadedUserStatus {\n\tstatus: string | null\n\ticon: string | null\n\tmessage: string | null\n}\n\n/**\n * NcAvatar fetches the status itself when `preloadedUserStatus` is falsy, so\n * always hand it a shape, even when there is nothing to show.\n */\nfunction loadInitialUserStatus(): { showUserStatus: boolean, userStatus: IPreloadedUserStatus } {\n\tconst userStatus: IPreloadedUserStatus = { status: null, icon: null, message: null }\n\n\tif (!getCapabilities()?.user_status?.enabled) {\n\t\treturn { showUserStatus: false, userStatus }\n\t}\n\n\t// JSDataService emits `[]`, not an object, when there is no session user\n\tconst state = loadState<Partial<IPreloadedUserStatus> | unknown[] | null>('user_status', 'status', null)\n\tif (state === null || typeof state !== 'object' || Array.isArray(state)) {\n\t\treturn { showUserStatus: false, userStatus }\n\t}\n\n\t// `avatarDescription` joins everything truthy in here, so drop the payload's other fields\n\tconst { status = null, icon = null, message = null } = state\n\treturn { showUserStatus: true, userStatus: { status, icon, message } }\n}\n\nconst statusLabels: Record<string, string> = Object.fromEntries(getAllStatusOptions().map(({ type, label }) => [type, label]))\n\nconst currentUser = getCurrentUser()!\nconst currentDisplayName = currentUser.displayName ?? currentUser.uid\nconst currentUserId = currentUser.uid\n\nconst settingsNavEntries = loadState<Record<string, ISettingsNavigationEntry>>('core', 'settingsNavEntries', {})\nconst { profile: profileEntry, ...otherEntries } = settingsNavEntries\n\nconst initialUserStatus = loadInitialUserStatus()\nconst showUserStatus = initialUserStatus.showUserStatus\nconst userStatus = ref(initialUserStatus.userStatus)\n\nconst avatarDescription = computed(() => {\n\tconst translatedUserStatus = {\n\t\t...userStatus.value,\n\t\tstatus: userStatus.value.status && (statusLabels[userStatus.value.status] ?? userStatus.value.status),\n\t}\n\treturn [\n\t\tt('core', 'Avatar of {displayName}', { displayName: currentDisplayName }),\n\t\t...Object.values(translatedUserStatus).filter(Boolean),\n\t].join(' — ')\n})\n\nonMounted(() => {\n\tsubscribe('user_status:status.updated', handleUserStatusUpdated)\n\temit('core:user-menu:mounted')\n})\n\n/**\n * Show the new status of the current user.\n *\n * @param state - The updated status\n */\nfunction handleUserStatusUpdated(state: IPreloadedUserStatus & { userId: string }) {\n\tif (currentUserId === state.userId) {\n\t\tuserStatus.value = {\n\t\t\tstatus: state.status,\n\t\t\ticon: state.icon,\n\t\t\tmessage: state.message,\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<NcHeaderMenu\n\t\tid=\"user-menu\"\n\t\tclass=\"account-menu\"\n\t\t:aria-label=\"t('core', 'Settings menu')\"\n\t\t:description=\"avatarDescription\">\n\t\t<template #trigger>\n\t\t\t<NcAvatar\n\t\t\t\tclass=\"account-menu__avatar\"\n\t\t\t\tdisableMenu\n\t\t\t\tdisableTooltip\n\t\t\t\t:hideStatus=\"!showUserStatus\"\n\t\t\t\t:user=\"currentUserId\"\n\t\t\t\t:preloadedUserStatus=\"userStatus\" />\n\t\t</template>\n\t\t<ul class=\"account-menu__list\">\n\t\t\t<AccountMenuProfileEntry\n\t\t\t\t:id=\"profileEntry.id\"\n\t\t\t\t:name=\"profileEntry.name\"\n\t\t\t\t:href=\"profileEntry.href\"\n\t\t\t\t:active=\"profileEntry.active\" />\n\t\t\t<AccountMenuEntry\n\t\t\t\tv-for=\"entry in otherEntries\"\n\t\t\t\t:id=\"entry.id\"\n\t\t\t\t:key=\"entry.id\"\n\t\t\t\t:name=\"entry.name\"\n\t\t\t\t:href=\"entry.href\"\n\t\t\t\t:active=\"entry.active\"\n\t\t\t\t:icon=\"entry.icon\" />\n\t\t</ul>\n\t</NcHeaderMenu>\n</template>\n\n<style lang=\"scss\" scoped>\n:deep(#header-menu-user-menu) {\n\tpadding: 0 !important;\n}\n\n.account-menu {\n\t:deep(*) {\n\t\t// do not apply the alpha mask on the avatar div\n\t\tmask: none !important;\n\t}\n\n\t&__avatar {\n\t\t--account-menu-outline: var(--border-width-input) solid color-mix(in srgb, var(--color-background-plain-text), transparent 75%);\n\t\toutline: var(--account-menu-outline);\n\t\tposition: fixed;\n\n\t\t&:hover {\n\t\t\t--account-menu-outline: none;\n\t\t\t// Add hover styles similar to the focus-visible style\n\t\t\tborder: var(--border-width-input-focused) solid var(--color-background-plain-text);\n\t\t}\n\t}\n\n\t&__list {\n\t\tdisplay: inline-flex;\n\t\tflex-direction: column;\n\t\tpadding-block: var(--default-grid-baseline) 0;\n\t\tpadding-inline: 0 var(--default-grid-baseline);\n\n\t\t> :deep(li) {\n\t\t\tbox-sizing: border-box;\n\t\t\t// basically \"fit-content\"\n\t\t\tflex: 0 1;\n\t\t}\n\t}\n\n\t// Ensure we do not waste space, as the header menu sets a default width of 350px\n\t:deep(.header-menu__content) {\n\t\twidth: fit-content !important;\n\t}\n\n\t// Lives here because NcListItem does not pass the scope id of AccountMenuEntry on to its root\n\t:deep(.account-menu-entry .list-item-content__main) {\n\t\twidth: fit-content;\n\t}\n\n\t:deep(button) {\n\t\t// Normally header menus are slightly translucent when not active\n\t\t// this is generally ok but for the avatar this is weird so fix the opacity\n\t\topacity: 1 !important;\n\n\t\t// The avatar is just the \"icon\" of the button\n\t\t// So we add the focus-visible manually\n\t\t&:focus-visible {\n\t\t\t.account-menu__avatar {\n\t\t\t\t--account-menu-outline: none;\n\t\t\t\tborder: var(--border-width-input-focused) solid var(--color-background-plain-text);\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport AccountMenu from '../views/AccountMenu.vue'\nimport { mountInPlace } from '../utils/mountInPlace.ts'\n\n/**\n * Set up the user menu component (\"AccountMenu\")\n * This is the top right menu where users can access their settings, profile, logout, etc.\n */\nexport function setUp() {\n\tconst mountPoint = document.getElementById('user-menu')\n\tif (mountPoint) {\n\t\tmountInPlace(createApp(AccountMenu), mountPoint)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { emit } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport {\n\tfetchRequestToken,\n\tgetRequestToken,\n} from './OC/requesttoken.ts'\nimport { logger } from './utils/logger.ts'\n\ninterface OcJsConfig {\n\tauto_logout: boolean\n\tsession_keepalive: boolean\n\tsession_lifetime: number\n}\n\n// This is always set, exception would be e.g. error pages where this is undefined\nconst {\n\tauto_logout: autoLogout,\n\tsession_keepalive: keepSessionAlive,\n\tsession_lifetime: sessionLifetime,\n} = loadState<Partial<OcJsConfig>>('core', 'config', {})\n\n/**\n * Calls the server periodically to ensure that session and CSRF\n * token doesn't expire\n */\nexport function initSessionHeartBeat() {\n\tregisterAutoLogout()\n\n\tif (!keepSessionAlive) {\n\t\tlogger.info('Session heartbeat disabled')\n\t\treturn\n\t}\n\n\tlet interval = startPolling()\n\twindow.addEventListener('online', async () => {\n\t\tlogger.info('Browser is online again, resuming heartbeat')\n\n\t\tinterval = startPolling()\n\t\ttry {\n\t\t\tawait poll()\n\t\t\tlogger.info('Session token successfully updated after resuming network')\n\n\t\t\t// Let apps know we're online and requests will have the new token\n\t\t\temit('networkOnline', {\n\t\t\t\tsuccess: true,\n\t\t\t})\n\t\t} catch (error) {\n\t\t\tlogger.error('could not update session token after resuming network', { error })\n\n\t\t\t// Let apps know we're online but requests might have an outdated token\n\t\t\temit('networkOnline', {\n\t\t\t\tsuccess: false,\n\t\t\t})\n\t\t}\n\t})\n\n\twindow.addEventListener('offline', () => {\n\t\tlogger.info('Browser is offline, stopping heartbeat')\n\n\t\t// Let apps know we're offline\n\t\temit('networkOffline', {})\n\n\t\tclearInterval(interval)\n\t\tlogger.info('Session heartbeat polling stopped')\n\t})\n}\n\n/**\n * Get interval in seconds\n */\nfunction getInterval(): number {\n\tconst interval = sessionLifetime\n\t\t? Math.floor(sessionLifetime / 2)\n\t\t: 900\n\n\t// minimum one minute, max 24 hours, default 15 minutes\n\treturn Math.min(\n\t\t24 * 3600,\n\t\tMath.max(\n\t\t\t60,\n\t\t\tinterval,\n\t\t),\n\t)\n}\n\n/**\n * Poll the CSRF token for changes.\n * This will also extend the current session if needed.\n */\nasync function poll() {\n\ttry {\n\t\tawait fetchRequestToken()\n\t} catch (error) {\n\t\tlogger.error('session heartbeat failed', { error })\n\t}\n}\n\n/**\n * Start an window interval with the polling as the callback.\n *\n * @return The interval id\n */\nfunction startPolling(): number {\n\tconst interval = window.setInterval(poll, getInterval() * 1000)\n\n\tlogger.info('session heartbeat polling started')\n\treturn interval\n}\n\n/**\n * If enabled this will register event listeners to track if a user is active.\n * If not the user will be automatically logged out after the configured IDLE time.\n */\nfunction registerAutoLogout() {\n\tif (!autoLogout || !getCurrentUser()) {\n\t\treturn\n\t}\n\n\tlet lastActive = Date.now()\n\twindow.addEventListener('mousemove', () => {\n\t\tlastActive = Date.now()\n\t\tlocalStorage.setItem('lastActive', JSON.stringify(lastActive))\n\t})\n\n\twindow.addEventListener('touchstart', () => {\n\t\tlastActive = Date.now()\n\t\tlocalStorage.setItem('lastActive', JSON.stringify(lastActive))\n\t})\n\n\twindow.addEventListener('storage', (event) => {\n\t\tif (event.key !== 'lastActive') {\n\t\t\treturn\n\t\t}\n\t\tif (event.newValue === null) {\n\t\t\treturn\n\t\t}\n\t\tlastActive = JSON.parse(event.newValue)\n\t})\n\n\tlet intervalId = 0\n\tconst logoutCheck = () => {\n\t\tconst timeout = Date.now() - (sessionLifetime ?? 86400) * 1000\n\t\tif (lastActive < timeout) {\n\t\t\tclearTimeout(intervalId)\n\t\t\tlogger.info('Inactivity timout reached, logging out')\n\t\t\tconst logoutUrl = generateUrl('/logout') + '?requesttoken=' + encodeURIComponent(getRequestToken())\n\t\t\twindow.location.href = logoutUrl\n\t\t}\n\t}\n\tintervalId = window.setInterval(logoutCheck, 1000)\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\nimport { logger } from './logger.ts'\n\n/**\n *\n * @param text\n */\nfunction unsecuredCopyToClipboard(text) {\n\tconst textArea = document.createElement('textarea')\n\tconst textAreaContent = document.createTextNode(text)\n\ttextArea.appendChild(textAreaContent)\n\tdocument.body.appendChild(textArea)\n\n\ttextArea.focus({ preventScroll: true })\n\ttextArea.select()\n\n\ttry {\n\t\t// This is a fallback for browsers that do not support the Clipboard API\n\t\t// execCommand is deprecated, but it is the only way to copy text to the clipboard in some browsers\n\t\tdocument.execCommand('copy')\n\t} catch (error) {\n\t\twindow.prompt(t('core', 'Clipboard not available, please copy manually'), text)\n\t\tlogger.error('files Unable to copy to clipboard', { error })\n\t}\n\n\tdocument.body.removeChild(textArea)\n}\n\n/**\n *\n */\nfunction initFallbackClipboardAPI() {\n\tif (!window.navigator?.clipboard?.writeText) {\n\t\tlogger.info('Clipboard API not available, using fallback')\n\t\tObject.defineProperty(window.navigator, 'clipboard', {\n\t\t\tvalue: {\n\t\t\t\twriteText: unsecuredCopyToClipboard,\n\t\t\t},\n\t\t\twritable: false,\n\t\t})\n\t}\n}\n\nexport { initFallbackClipboardAPI }\n","//! moment.js\n//! version : 2.31.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidOffset: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid$2(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidOffset &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid$1(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg + '\\n' + new Error().stack);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\e)|(\\\\)?(eHHmm|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n var cacheKey = '$' + format;\n if (!hasOwnProp(formatFunctions, cacheKey)) {\n formatFunctions[cacheKey] = makeFormatFunction(format);\n }\n\n return formatFunctions[cacheKey](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get$2(this, unit);\n }\n };\n }\n\n function get$2(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod$1(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod$1(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord,\n monthsParseProperties = [\n 'monthsParse',\n 'longMonthsParse',\n 'shortMonthsParse',\n 'monthsRegex',\n 'monthsShortRegex',\n 'monthsStrictRegex',\n 'monthsShortStrictRegex',\n ];\n\n function clearMonthsParseCache(locale, config) {\n var i, prop;\n for (i = 0; i < monthsParseProperties.length; i++) {\n prop = monthsParseProperties[i];\n if (!hasOwnProp(config, prop)) {\n delete locale['_' + prop];\n }\n }\n }\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse$1(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse$1.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get$2(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n addFormatToken('eHHmm', 0, 0, function () {\n return (\n '' +\n this.weekday() +\n zeroFill(this.hours(), 2) +\n zeroFill(this.minutes(), 2)\n );\n });\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('eHHmm', match5to6);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n addWeekParseToken('eHHmm', function (input, week, config) {\n var weekdayEnd = input.length - 4;\n\n week.e = toInt(input.substr(0, weekdayEnd));\n config._a[HOUR] = toInt(input.substr(weekdayEnd, 2));\n config._a[MINUTE] = toInt(input.substr(weekdayEnd + 2));\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord,\n weekdaysParseProperties = [\n 'weekdaysParse',\n 'fullWeekdaysParse',\n 'shortWeekdaysParse',\n 'minWeekdaysParse',\n 'weekdaysRegex',\n 'weekdaysShortRegex',\n 'weekdaysMinRegex',\n 'weekdaysStrictRegex',\n 'weekdaysShortStrictRegex',\n 'weekdaysMinStrictRegex',\n ];\n\n function clearWeekdaysParseCache(locale, config) {\n var i, prop;\n for (i = 0; i < weekdaysParseProperties.length; i++) {\n prop = weekdaysParseProperties[i];\n if (!hasOwnProp(config, prop)) {\n delete locale['_' + prop];\n }\n }\n }\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get$2(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n function set(config) {\n var prop, i;\n clearMonthsParseCache(this, config);\n clearWeekdaysParseCache(this, config);\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar$1(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()],\n formatCache = this._longDateFormatCache;\n\n if (format || !formatUpper) {\n return format;\n }\n\n if (\n formatCache &&\n formatCache[key] &&\n formatCache[key].formatUpper === formatUpper\n ) {\n return formatCache[key].format;\n }\n\n format = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n if (!formatCache) {\n formatCache = this._longDateFormatCache = {};\n }\n formatCache[key] = {\n formatUpper: formatUpper,\n format: format,\n };\n return format;\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTimeWithoutPostformat(\n number,\n withoutSuffix,\n string,\n isFuture\n ) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function relativeTime$1(number, withoutSuffix, string, isFuture) {\n return this.postformat(\n relativeTimeWithoutPostformat.call(\n this,\n number,\n withoutSuffix,\n string,\n isFuture\n )\n );\n }\n\n function pastFutureWithoutPostformat(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n function pastFuture(diff, output) {\n return this.postformat(\n pastFutureWithoutPostformat.call(this, diff, output)\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYearFromDayOfYear(year, dayOfYear, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n week = Math.floor((dayOfYear - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = year - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(year, dow, doy)) {\n resWeek = week - weeksInYear(year, dow, doy);\n resYear = year + 1;\n } else {\n resYear = year;\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n return weekOfYearFromDayOfYear(mom.year(), mom.dayOfYear(), dow, doy);\n }\n\n function weekOfYearFromDate(year, month, date, dow, doy) {\n var dayOfYear =\n Math.round(\n (createUTCDate(year, month, date) - createUTCDate(year, 0, 1)) /\n 864e5\n ) + 1;\n\n return weekOfYearFromDayOfYear(year, dayOfYear, dow, doy);\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Only canonical locale module names are safe to append to the require path.\n return typeof name === 'string' && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(name);\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire,\n normalizedName;\n\n // Preserve exact custom locale names before trying the canonical built-in name.\n // Use hasOwnProp rather than a plain lookup so that names like \"__proto__\",\n // \"constructor\", or \"prototype\" can't resolve to an inherited Object.prototype\n // property instead of a real (or missing) locale entry.\n if (hasOwnProp(locales, name)) {\n return locales[name];\n }\n\n normalizedName = normalizeLocale(name);\n if (hasOwnProp(locales, normalizedName)) {\n return locales[normalizedName];\n }\n\n // TODO: Find a better way to register and load all the locales in Node\n if (\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(normalizedName)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + normalizedName);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[normalizedName] = null; // null means not found\n }\n }\n if (hasOwnProp(locales, normalizedName)) {\n return locales[normalizedName];\n }\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n var locale,\n tmpLocale = loadLocale(name),\n parentConfig = baseConfig;\n\n if (tmpLocale != null) {\n name = tmpLocale._abbr;\n }\n\n if (config != null) {\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config, now, forWeek) {\n var hadWeekContext = Object.prototype.hasOwnProperty.call(\n config,\n '_isDefaultDatePartsForWeek'\n ),\n weekContext = config._isDefaultDatePartsForWeek;\n\n // hooks is actually the exported moment object\n config._isDefaultDatePartsForWeek = !!forWeek;\n try {\n return hooks._getDefaultDateParts(config, now, forWeek);\n } finally {\n if (hadWeekContext) {\n config._isDefaultDatePartsForWeek = weekContext;\n } else {\n delete config._isDefaultDatePartsForWeek;\n }\n }\n }\n\n function currentDateNow(config) {\n var now = config._defaultDatePartsNow;\n\n if (!now) {\n return hooks.now();\n }\n if (!now.hasValue) {\n now.value = hooks.now();\n now.hasValue = true;\n }\n return now.value;\n }\n\n // Internal hook for extensions that supply omitted calendar fields.\n function getDefaultDateParts(config, now, forWeek) {\n var useWeekDefaults = forWeek || config._isDefaultDatePartsForWeek,\n nowValue = useWeekDefaults ? createLocal(now) : new Date(now);\n if (useWeekDefaults) {\n return [nowValue.year(), nowValue.month(), nowValue.date()];\n }\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n hooks._getDefaultDateParts = getDefaultDateParts;\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n now,\n currentDate,\n expectedWeekday,\n yearToUse,\n dateIsDefaulted;\n\n if (config._d) {\n return;\n }\n\n if (\n config._a[YEAR] == null ||\n config._a[MONTH] == null ||\n config._a[DATE] == null\n ) {\n now = currentDateNow(config);\n currentDate = currentDateArray(config, now);\n }\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config, currentDateArray(config, now, true));\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse =\n config._a[YEAR] != null ? config._a[YEAR] : currentDate[YEAR];\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n dateIsDefaulted =\n config._a[YEAR] == null ||\n config._a[MONTH] == null ||\n config._a[DATE] == null;\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n !dateIsDefaulted &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config, currentDate) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYearFromDate(\n currentDate[YEAR],\n currentDate[MONTH],\n currentDate[DATE],\n 1,\n 4\n ).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYearFromDate(\n currentDate[YEAR],\n currentDate[MONTH],\n currentDate[DATE],\n dow,\n doy\n );\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n defaultDatePartsNow = {},\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._defaultDatePartsNow = defaultDatePartsNow;\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid$2(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid$1({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid$2(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid$1();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid$1();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n for (i = 0; i < moments.length; ++i) {\n if (isMoment(moments[i])) {\n res = moments[i];\n break;\n }\n }\n if (!res) {\n return createInvalid$1();\n }\n for (++i; i < moments.length; ++i) {\n if (\n isMoment(moments[i]) &&\n (!moments[i].isValid() || moments[i][fn](res))\n ) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n var offset = offsetFromString(matchShortOffset, input);\n config._useUTC = true;\n config._tzm = offset;\n if (offset === null) {\n getParsingFlags(config).invalidOffset = input;\n }\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n if (\n toInt(parts[2]) > 59 ||\n (parts[0] === '+' ? minutes > 14 * 60 : minutes > 12 * 60)\n ) {\n return null;\n }\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract$1(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract$1(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract$1(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get$2(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get$2(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add$1 = createAdder(1, 'add'),\n subtract$1 = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone$1() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString$1(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf$1() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid() {\n return isValid$2(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? 1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? 1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto$2 = Moment.prototype;\n\n proto$2.add = add$1;\n proto$2.calendar = calendar;\n proto$2.clone = clone$1;\n proto$2.diff = diff;\n proto$2.endOf = endOf;\n proto$2.format = format;\n proto$2.from = from;\n proto$2.fromNow = fromNow;\n proto$2.to = to;\n proto$2.toNow = toNow;\n proto$2.get = stringGet;\n proto$2.invalidAt = invalidAt;\n proto$2.isAfter = isAfter;\n proto$2.isBefore = isBefore;\n proto$2.isBetween = isBetween;\n proto$2.isSame = isSame;\n proto$2.isSameOrAfter = isSameOrAfter;\n proto$2.isSameOrBefore = isSameOrBefore;\n proto$2.isValid = isValid;\n proto$2.lang = lang;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.max = prototypeMax;\n proto$2.min = prototypeMin;\n proto$2.parsingFlags = parsingFlags;\n proto$2.set = stringSet;\n proto$2.startOf = startOf;\n proto$2.subtract = subtract$1;\n proto$2.toArray = toArray;\n proto$2.toObject = toObject;\n proto$2.toDate = toDate;\n proto$2.toISOString = toISOString$1;\n proto$2.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto$2[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto$2.toJSON = toJSON;\n proto$2.toString = toString;\n proto$2.unix = unix;\n proto$2.valueOf = valueOf$1;\n proto$2.creationData = creationData;\n proto$2.eraName = getEraName;\n proto$2.eraNarrow = getEraNarrow;\n proto$2.eraAbbr = getEraAbbr;\n proto$2.eraYear = getEraYear;\n proto$2.year = getSetYear;\n proto$2.isLeapYear = getIsLeapYear;\n proto$2.weekYear = getSetWeekYear;\n proto$2.isoWeekYear = getSetISOWeekYear;\n proto$2.quarter = proto$2.quarters = getSetQuarter;\n proto$2.month = getSetMonth;\n proto$2.daysInMonth = getDaysInMonth;\n proto$2.week = proto$2.weeks = getSetWeek;\n proto$2.isoWeek = proto$2.isoWeeks = getSetISOWeek;\n proto$2.weeksInYear = getWeeksInYear;\n proto$2.weeksInWeekYear = getWeeksInWeekYear;\n proto$2.isoWeeksInYear = getISOWeeksInYear;\n proto$2.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto$2.date = getSetDayOfMonth;\n proto$2.day = proto$2.days = getSetDayOfWeek;\n proto$2.weekday = getSetLocaleDayOfWeek;\n proto$2.isoWeekday = getSetISODayOfWeek;\n proto$2.dayOfYear = getSetDayOfYear;\n proto$2.hour = proto$2.hours = getSetHour;\n proto$2.minute = proto$2.minutes = getSetMinute;\n proto$2.second = proto$2.seconds = getSetSecond;\n proto$2.millisecond = proto$2.milliseconds = getSetMillisecond;\n proto$2.utcOffset = getSetOffset;\n proto$2.utc = setOffsetToUTC;\n proto$2.local = setOffsetToLocal;\n proto$2.parseZone = setOffsetToParsedOffset;\n proto$2.hasAlignedHourOffset = hasAlignedHourOffset;\n proto$2.isDST = isDaylightSavingTime;\n proto$2.isLocal = isLocal;\n proto$2.isUtcOffset = isUtcOffset;\n proto$2.isUtc = isUtc;\n proto$2.isUTC = isUtc;\n proto$2.zoneAbbr = getZoneAbbr;\n proto$2.zoneName = getZoneName;\n proto$2.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto$2.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto$2.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto$2.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto$2.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar$1;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime$1;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs$1() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add(input, value) {\n return addSubtract(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract(input, value) {\n return addSubtract(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf = asMilliseconds;\n\n function clone() {\n return createDuration(this);\n }\n\n function get(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return relativeTimeWithoutPostformat.call(\n locale,\n number || 1,\n !!withoutSuffix,\n string,\n isFuture\n );\n }\n\n function relativeTime(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = extend(extend({}, thresholds), argThresholds || {});\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = pastFutureWithoutPostformat.call(locale, +this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs(this._milliseconds) / 1000,\n days = abs(this._days),\n months = abs(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto = Duration.prototype;\n\n proto.isValid = isValid$1;\n proto.abs = abs$1;\n proto.add = add;\n proto.subtract = subtract;\n proto.as = as;\n proto.asMilliseconds = asMilliseconds;\n proto.asSeconds = asSeconds;\n proto.asMinutes = asMinutes;\n proto.asHours = asHours;\n proto.asDays = asDays;\n proto.asWeeks = asWeeks;\n proto.asMonths = asMonths;\n proto.asQuarters = asQuarters;\n proto.asYears = asYears;\n proto.valueOf = valueOf;\n proto._bubble = bubble;\n proto.clone = clone;\n proto.get = get;\n proto.milliseconds = milliseconds;\n proto.seconds = seconds;\n proto.minutes = minutes;\n proto.hours = hours;\n proto.days = days;\n proto.weeks = weeks;\n proto.months = months;\n proto.years = years;\n proto.humanize = humanize;\n proto.toISOString = toISOString;\n proto.toString = toISOString;\n proto.toJSON = toISOString;\n proto.locale = locale;\n proto.localeData = localeData;\n\n proto.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString\n );\n proto.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.31.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto$2;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid$1;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto$2;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n",";(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('am-et', {\n months: 'ጃንዩወሪ_ፌብሩወሪ_ማርች_ኤፕሪል_ሜይ_ጁን_ጁላይ_ኦገስት_ሴፕቴምበር_ኦክቶበር_ኖቬምበር_ዲሴምበር'.split(\n '_'\n ),\n monthsShort: 'ጃን_ፌብ_ማር_ኤፕር_ሜይ_ጁን_ጁላይ_ኦገ_ሴፕ_ኦክቶ_ኖቬ_ዲሴ'.split('_'),\n weekdays: 'እሑድ_ሰኞ_ማክሰኞ_እሮብ_ሀሙስ_ዓርብ_ቅዳሜ'.split('_'),\n weekdaysShort: 'እሑ_ሰኞ_ማክ_እሮ_ሀሙ_ዓር_ቅዳ'.split('_'),\n weekdaysMin: 'እሁ_ሰ_ማ_እ_ሀ_ዓ_ቅ'.split('_'),\n meridiemParse: /ጥዋት|ከሰዓት/,\n isPM: function (input) {\n return input === 'ከሰዓት';\n },\n meridiem: function (hours) {\n return hours < 12 ? 'ጥዋት' : 'ከሰዓት';\n },\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[ዛሬ በ] LT',\n nextDay: '[ነገ በ] LT',\n nextWeek: 'dddd [በ] LT',\n lastDay: '[ትናንትና በ] LT',\n lastWeek: '[ያለፈው ሳምንት] dddd [በ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ውስጥ',\n past: '%s በፊት',\n s: 'ጥቂት ሰከንዶች',\n ss: '%d ሰከንዶች',\n m: 'አንድ ደቂቃ',\n mm: '%d ደቂቃዎች',\n h: 'አንድ ሰአት',\n hh: '%d ሰአታት',\n d: 'አንድ ቀን',\n dd: '%d ቀናት',\n M: 'አንድ ወር',\n MM: '%d ወራት',\n y: 'አንድ ዓመት',\n yy: '%d ዓመታት',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ኛ)/,\n ordinal: function (number) {\n return number + 'ኛ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var pluralForm$2 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$2 = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize$2 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$2(number),\n str = plurals$2[u][pluralForm$2(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$b = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar-dz', {\n months: months$b,\n monthsShort: months$b,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize$2('s'),\n ss: pluralize$2('s'),\n m: pluralize$2('m'),\n mm: pluralize$2('m'),\n h: pluralize$2('h'),\n hh: pluralize$2('h'),\n d: pluralize$2('d'),\n dd: pluralize$2('d'),\n M: pluralize$2('M'),\n MM: pluralize$2('M'),\n y: pluralize$2('y'),\n yy: pluralize$2('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$i = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm$1 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$1 = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$a = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar-ly', {\n months: months$a,\n monthsShort: months$a,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize$1('s'),\n ss: pluralize$1('s'),\n m: pluralize$1('m'),\n mm: pluralize$1('m'),\n h: pluralize$1('h'),\n hh: pluralize$1('h'),\n d: pluralize$1('d'),\n dd: pluralize$1('d'),\n M: pluralize$1('M'),\n MM: pluralize$1('M'),\n y: pluralize$1('y'),\n yy: pluralize$1('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$i[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$h = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$h = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$h[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap$h[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$h[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$g = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$g = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$g[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$g[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$f = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$f = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$9 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar', {\n months: months$9,\n monthsShort: months$9,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$f[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$f[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$5 = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$6(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural$6(format[key], +number);\n }\n }\n\n moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural$4,\n mm: relativeTimeWithPlural$4,\n h: relativeTimeWithPlural$4,\n hh: relativeTimeWithPlural$4,\n d: 'дзень',\n dd: relativeTimeWithPlural$4,\n M: 'месяц',\n MM: relativeTimeWithPlural$4,\n y: 'год',\n yy: relativeTimeWithPlural$4,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n // Language contact person : Abdoufata Kane : https://github.com/abdoufata\n\n\n moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$e = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap$e = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$e[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$d = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap$d = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$c = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap$c = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse$g = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex$c =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex$1 =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex$1 =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex$c,\n monthsShortRegex: monthsRegex$c,\n monthsStrictRegex: monthsStrictRegex$1,\n monthsShortStrictRegex: monthsShortStrictRegex$1,\n monthsParse: monthsParse$g,\n longMonthsParse: monthsParse$g,\n shortMonthsParse: monthsParse$g,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$a(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate$a(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate$a,\n m: processRelativeTime$a,\n mm: translate$a,\n h: translate$a,\n hh: translate$a,\n d: 'dan',\n dd: translate$a,\n M: 'mjesec',\n MM: translate$a,\n y: 'godinu',\n yy: translate$a,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: 'de gener_de febrer_de març_d’abril_de maig_de juny_de juliol_d’agost_de setembre_d’octubre_de novembre_de desembre'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$8 = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort$8 = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse$f = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex$b =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural$5(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate$9(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n moment.defineLocale('cs', {\n months: months$8,\n monthsShort: monthsShort$8,\n monthsRegex: monthsRegex$b,\n monthsShortRegex: monthsRegex$b,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse$f,\n longMonthsParse: monthsParse$f,\n shortMonthsParse: monthsParse$f,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate$9,\n ss: translate$9,\n m: translate$9,\n mm: translate$9,\n h: translate$9,\n hh: translate$9,\n d: translate$9,\n dd: translate$9,\n M: translate$9,\n MM: translate$9,\n y: translate$9,\n yy: translate$9,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsParse$e = [\n /^jän/i,\n /^feb/i,\n /^mär/i,\n /^apr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dez/i,\n ],\n monthsRegex$a =\n /^(Jänner|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember|Jän\\.?|Feb\\.?|Mär\\.?|Apr\\.?|Jun\\.?|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i;\n\n function processRelativeTime$9(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n\n monthsRegex: monthsRegex$a,\n monthsShortRegex: monthsRegex$a,\n monthsStrictRegex:\n /^(Jänner|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)/i,\n monthsShortStrictRegex:\n /^(Jän\\.?|Feb\\.?|März|Mär\\.?|Apr\\.?|Mai|Juni|Jun\\.?|Juli|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i,\n\n monthsParse: monthsParse$e,\n longMonthsParse: monthsParse$e,\n shortMonthsParse: monthsParse$e,\n\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$9,\n mm: '%d Minuten',\n h: processRelativeTime$9,\n hh: '%d Stunden',\n d: processRelativeTime$9,\n dd: processRelativeTime$9,\n w: processRelativeTime$9,\n ww: '%d Wochen',\n M: processRelativeTime$9,\n MM: processRelativeTime$9,\n y: processRelativeTime$9,\n yy: processRelativeTime$9,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsParse$d = [\n /^jan/i,\n /^feb/i,\n /^mär/i,\n /^apr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dez/i,\n ],\n monthsRegex$9 =\n /^(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember|Jan\\.?|Feb\\.?|Mär\\.?|Apr\\.?|Jun\\.?|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i;\n\n function processRelativeTime$8(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n\n monthsRegex: monthsRegex$9,\n monthsShortRegex: monthsRegex$9,\n monthsStrictRegex:\n /^(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)/i,\n monthsShortStrictRegex:\n /^(Jan\\.?|Feb\\.?|März|Mär\\.?|Apr\\.?|Mai|Juni|Jun\\.?|Juli|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i,\n\n monthsParse: monthsParse$d,\n longMonthsParse: monthsParse$d,\n shortMonthsParse: monthsParse$d,\n\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$8,\n mm: '%d Minuten',\n h: processRelativeTime$8,\n hh: '%d Stunden',\n d: processRelativeTime$8,\n dd: processRelativeTime$8,\n w: processRelativeTime$8,\n ww: '%d Wochen',\n M: processRelativeTime$8,\n MM: processRelativeTime$8,\n y: processRelativeTime$8,\n yy: processRelativeTime$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsParse$c = [\n /^jan/i,\n /^feb/i,\n /^mär/i,\n /^apr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dez/i,\n ],\n monthsRegex$8 =\n /^(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember|Jan\\.?|Feb\\.?|Mär\\.?|Apr\\.?|Jun\\.?|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i;\n\n function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n\n monthsRegex: monthsRegex$8,\n monthsShortRegex: monthsRegex$8,\n monthsStrictRegex:\n /^(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)/i,\n monthsShortStrictRegex:\n /^(Jan\\.?|Feb\\.?|März|Mär\\.?|Apr\\.?|Mai|Juni|Jun\\.?|Juli|Jul\\.?|Aug\\.?|Sep\\.?|Okt\\.?|Nov\\.?|Dez\\.?)/i,\n\n monthsParse: monthsParse$c,\n longMonthsParse: monthsParse$c,\n shortMonthsParse: monthsParse$c,\n\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$7,\n mm: '%d Minuten',\n h: processRelativeTime$7,\n hh: '%d Stunden',\n d: processRelativeTime$7,\n dd: processRelativeTime$7,\n w: processRelativeTime$7,\n ww: '%d Wochen',\n M: processRelativeTime$7,\n MM: processRelativeTime$7,\n y: processRelativeTime$7,\n yy: processRelativeTime$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$7 = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays$2 = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n moment.defineLocale('dv', {\n months: months$7,\n monthsShort: months$7,\n weekdays: weekdays$2,\n weekdaysShort: weekdays$2,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$3 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$7 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$b = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$7 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$3;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$7[m.month()];\n } else {\n return monthsShortDot$3[m.month()];\n }\n },\n monthsRegex: monthsRegex$7,\n monthsShortRegex: monthsRegex$7,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$b,\n longMonthsParse: monthsParse$b,\n shortMonthsParse: monthsParse$b,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$2 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$6 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$a = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$6 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$6[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex: monthsRegex$6,\n monthsShortRegex: monthsRegex$6,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$a,\n longMonthsParse: monthsParse$a,\n shortMonthsParse: monthsParse$a,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$1 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$5 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$9 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$5 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$5[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$9,\n longMonthsParse: monthsParse$9,\n shortMonthsParse: monthsParse$9,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$8 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$4 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$4[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$8,\n longMonthsParse: monthsParse$8,\n shortMonthsParse: monthsParse$8,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime$6,\n ss: processRelativeTime$6,\n m: processRelativeTime$6,\n mm: processRelativeTime$6,\n h: processRelativeTime$6,\n hh: processRelativeTime$6,\n d: processRelativeTime$6,\n dd: '%d päeva',\n M: processRelativeTime$6,\n MM: processRelativeTime$6,\n y: processRelativeTime$6,\n yy: processRelativeTime$6,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$b = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap$b = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap$b[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$b[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate$8(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate$8,\n ss: translate$8,\n m: translate$8,\n mm: translate$8,\n h: translate$8,\n hh: translate$8,\n d: translate$8,\n dd: translate$8,\n M: translate$8,\n MM: translate$8,\n y: translate$8,\n yy: translate$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex$3 =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse$7 = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse$7,\n longMonthsParse: monthsParse$7,\n shortMonthsParse: monthsParse$7,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$2 =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots$2 =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$6 = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort$3 = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays$1 = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort$1 = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin$1 = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n moment.defineLocale('ga', {\n months: months$6,\n monthsShort: monthsShort$3,\n monthsParseExact: true,\n weekdays: weekdays$1,\n weekdaysShort: weekdaysShort$1,\n weekdaysMin: weekdaysMin$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$5 = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort$2 = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n moment.defineLocale('gd', {\n months: months$5,\n monthsShort: monthsShort$2,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime$5,\n ss: processRelativeTime$5,\n m: processRelativeTime$5,\n mm: processRelativeTime$5,\n h: processRelativeTime$5,\n hh: processRelativeTime$5,\n d: processRelativeTime$5,\n dd: processRelativeTime$5,\n M: processRelativeTime$5,\n MM: processRelativeTime$5,\n y: processRelativeTime$5,\n yy: processRelativeTime$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime$4,\n ss: processRelativeTime$4,\n m: processRelativeTime$4,\n mm: processRelativeTime$4,\n h: processRelativeTime$4,\n hh: processRelativeTime$4,\n d: processRelativeTime$4,\n dd: processRelativeTime$4,\n M: processRelativeTime$4,\n MM: processRelativeTime$4,\n y: processRelativeTime$4,\n yy: processRelativeTime$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$a = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap$a = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap$a[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$9 = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$9 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse$6 = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse$1 = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: shortMonthsParse$1,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$9[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function translate$7(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate$7,\n m: translate$7,\n mm: translate$7,\n h: translate$7,\n hh: translate$7,\n d: 'dan',\n dd: translate$7,\n M: 'mjesec',\n MM: translate$7,\n y: 'godinu',\n yy: translate$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate$6(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return (\n num + (isFuture || withoutSuffix ? ' másodperc' : ' másodperce')\n );\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate$6,\n ss: translate$6,\n m: translate$6,\n mm: translate$6,\n h: translate$6,\n hh: translate$6,\n d: translate$6,\n dd: translate$6,\n M: translate$6,\n MM: translate$6,\n y: translate$6,\n yy: translate$6,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsParse$5 = [],\n longMonthsParse = [],\n shortMonthsParse = [];\n\n monthsParse$5[7] = /^agustus|^agu|^agt/i;\n longMonthsParse[7] = /^agustus$/i;\n shortMonthsParse[7] = /^agu$|^agt$/i;\n\n moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agu_Sep_Okt_Nov_Des'.split('_'),\n monthsParse: monthsParse$5,\n longMonthsParse: longMonthsParse,\n shortMonthsParse: shortMonthsParse,\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$4(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate$5(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural$4(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural$4(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural$4(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural$4(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural$4(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural$4(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: 'klukkustund',\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$4 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$4[number] || suffixes$4[a] || suffixes$4[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$8 = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap$8 = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$7 = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap$7 = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$3(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime$3,\n ss: processRelativeTime$3,\n m: processRelativeTime$3,\n mm: processRelativeTime$3,\n h: processRelativeTime$3,\n hh: processRelativeTime$3,\n d: processRelativeTime$3,\n dd: processRelativeTime$3,\n w: processRelativeTime$3,\n ww: processRelativeTime$3,\n M: processRelativeTime$3,\n MM: processRelativeTime$3,\n y: processRelativeTime$3,\n yy: processRelativeTime$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$6 = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$6 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months$4 = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n moment.defineLocale('ku', {\n months: months$4,\n monthsShort: months$4,\n weekdays:\n 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(\n '_'\n ),\n weekdaysShort:\n 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره|بهیانی/,\n isPM: function (input) {\n return /ئێواره/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'بهیانی';\n } else {\n return 'ئێواره';\n }\n },\n calendar: {\n sameDay: '[ئهمرۆ كاتژمێر] LT',\n nextDay: '[بهیانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له %s',\n past: '%s',\n s: 'چهند چركهیهك',\n ss: 'چركه %d',\n m: 'یهك خولهك',\n mm: '%d خولهك',\n h: 'یهك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یهك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یهك مانگ',\n MM: '%d مانگ',\n y: 'یهك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$6[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$6[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$3 = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime$2,\n mm: '%d Minutten',\n h: processRelativeTime$2,\n hh: '%d Stonnen',\n d: processRelativeTime$2,\n dd: '%d Deeg',\n M: processRelativeTime$2,\n MM: '%d Méint',\n y: processRelativeTime$2,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n //! moment.js locale configuration\n\n var units$1 = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units$1[key].split('_');\n }\n function translate$4(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate$4,\n m: translateSingular,\n mm: translate$4,\n h: translateSingular,\n hh: translate$4,\n d: translateSingular,\n dd: translate$4,\n M: translateSingular,\n MM: translate$4,\n y: translateSingular,\n yy: translate$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural$3,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural$3,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural$3,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural$3,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural$3,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$2 = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator$2.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator$2.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator$2.translate,\n m: translator$2.translate,\n mm: translator$2.translate,\n h: translator$2.translate,\n hh: translator$2.translate,\n d: 'dan',\n dd: translator$2.translate,\n M: 'mjesec',\n MM: translator$2.translate,\n y: 'godinu',\n yy: translator$2.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function translate$3(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate$3,\n ss: translate$3,\n m: translate$3,\n mm: translate$3,\n h: translate$3,\n hh: translate$3,\n d: translate$3,\n dd: translate$3,\n M: translate$3,\n MM: translate$3,\n y: translate$3,\n yy: translate$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$5 = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$5 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$5[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$4 = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap$4 = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap$4[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$3 = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$3 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$1 =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$1 =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse$4 = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$2 =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse$3 = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$1 =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$2 = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap$2 = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$2[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse$2 = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural$3(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate$2(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural$3(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D\\.? MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate$2,\n M: 'miesiąc',\n MM: translate$2,\n y: 'rok',\n yy: translate$2,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$1 = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap$1 = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n },\n months$3 = {\n format: 'جنوري_فبروري_مارچ_اپریل_مۍ_جون_جولای_اګست_سېپتمبر_اکتوبر_نومبر_دسمبر'.split(\n '_'\n ),\n standalone:\n 'جنوري_فېبروري_مارچ_اپریل_مۍ_جون_جولای_اګست_سپتمبر_اکتوبر_نومبر_دسمبر'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s|,)+MMMM?/,\n },\n monthsShort$1 = {\n format: 'جنوري_فبروري_مارچ_اپریل_مۍ_جون_جولای_اګست_سېپتمبر_اکتوبر_نومبر_دسمبر'.split(\n '_'\n ),\n standalone:\n 'جنوري_فبروري_مارچ_اپریل_مۍ_جون_جولای_اګست_سپتمبر_اکتوبر_نومبر_دسمبر'.split(\n '_'\n ),\n },\n monthsParse$1 = [\n /^جنوري$/i,\n /^(فبروري|فېبروري)$/i,\n /^مارچ$/i,\n /^اپریل$/i,\n /^مۍ$/i,\n /^جون$/i,\n /^جولای$/i,\n /^اګست$/i,\n /^(سپتمبر|سېپتمبر)$/i,\n /^اکتوبر$/i,\n /^نومبر$/i,\n /^دسمبر$/i,\n ],\n monthsRegex =\n /^(جنوري|فبروري|فېبروري|مارچ|اپریل|مۍ|جون|جولای|اګست|سپتمبر|سېپتمبر|اکتوبر|نومبر|دسمبر)/i;\n\n function relativeTime$1(number, withoutSuffix, key, isFuture) {\n var format =\n isFuture && !withoutSuffix\n ? {\n s: 'څو ثانيو',\n ss: '%d ثانيو',\n m: 'يوه دقيقه',\n mm: '%d دقيقو',\n h: 'يو ساعت',\n hh: '%d ساعتو',\n d: 'يوه ورځ',\n dd: '%d ورځو',\n M: 'يوه مياشت',\n MM: '%d مياشتو',\n y: 'يو کال',\n yy: '%d کالونو',\n }\n : {\n s: 'څو ثانيې',\n ss: '%d ثانيې',\n m: 'يوه دقيقه',\n mm: '%d دقيقې',\n h: 'يو ساعت',\n hh: '%d ساعتونه',\n d: 'يوه ورځ',\n dd: '%d ورځې',\n M: 'يوه مياشت',\n MM: '%d مياشتې',\n y: 'يو کال',\n yy: '%d کاله',\n };\n\n return format[key].replace('%d', number);\n }\n\n moment.defineLocale('ps', {\n months: months$3,\n monthsShort: monthsShort$1,\n monthsParse: monthsParse$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsRegex,\n monthsShortStrictRegex: monthsRegex,\n weekdays: 'یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه_شنبه'.split('_'),\n weekdaysShort: 'یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY/M/D',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd D, MMMM, YYYY [په] H:mm',\n },\n meridiemParse: /غ\\.م|غ\\.و\\./,\n isPM: function (input) {\n return input === 'غ.و.';\n },\n meridiem: function (hour) {\n return hour < 12 ? 'غ.م' : 'غ.و.';\n },\n calendar: {\n sameDay: '[نن په] LT',\n nextDay: '[سبا په] LT',\n nextWeek: 'dddd [په] LT',\n lastDay: '[پرون په] LT',\n lastWeek: 'dddd [په] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'په %s کې',\n past: '%s مخکې',\n s: relativeTime$1,\n ss: relativeTime$1,\n m: relativeTime$1,\n mm: relativeTime$1,\n h: relativeTime$1,\n hh: relativeTime$1,\n d: relativeTime$1,\n dd: relativeTime$1,\n M: relativeTime$1,\n MM: relativeTime$1,\n y: relativeTime$1,\n yy: relativeTime$1,\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap$1[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: function () {\n return '[Hoje ' + (this.hours() >= 2 ? 'às' : 'à') + '] LT';\n },\n nextDay: function () {\n return '[Amanhã ' + (this.hours() >= 2 ? 'às' : 'à') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() >= 2 ? 'às' : 'à') + '] LT';\n },\n lastDay: function () {\n return '[Ontem ' + (this.hours() >= 2 ? 'às' : 'à') + '] LT';\n },\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [' + (this.hours() >= 2 ? 'às' : 'à') + '] LT' // Saturday + Sunday\n : '[Última] dddd [' + (this.hours() >= 2 ? 'às' : 'à') + '] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n w: 'o săptămână',\n ww: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$2(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural$2(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural$1,\n m: relativeTimeWithPlural$1,\n mm: relativeTimeWithPlural$1,\n h: 'час',\n hh: relativeTimeWithPlural$1,\n d: 'день',\n dd: relativeTimeWithPlural$1,\n w: 'неделя',\n ww: relativeTimeWithPlural$1,\n M: 'месяц',\n MM: relativeTimeWithPlural$1,\n y: 'год',\n yy: relativeTimeWithPlural$1,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$2 = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n moment.defineLocale('sd', {\n months: months$2,\n monthsShort: months$2,\n weekdays: days$1,\n weekdaysShort: days$1,\n weekdaysMin: days$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var months$1 =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural$1(n) {\n return n > 1 && n < 5;\n }\n function translate$1(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n moment.defineLocale('sk', {\n months: months$1,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate$1,\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: translate$1,\n dd: translate$1,\n M: translate$1,\n MM: translate$1,\n y: translate$1,\n yy: translate$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime$1,\n ss: processRelativeTime$1,\n m: processRelativeTime$1,\n mm: processRelativeTime$1,\n h: processRelativeTime$1,\n hh: processRelativeTime$1,\n d: processRelativeTime$1,\n dd: processRelativeTime$1,\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$1 = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator$1.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator$1.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator$1.translate,\n m: translator$1.translate,\n mm: translator$1.translate,\n h: translator$1.translate,\n hh: translator$1.translate,\n d: translator$1.translate,\n dd: translator$1.translate,\n M: translator$1.translate,\n MM: translator$1.translate,\n y: translator$1.translate,\n yy: translator$1.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tors_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var relativeTime = {\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa moja',\n hh: 'saa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n };\n\n function relativeTimeWithSuffix(number, withoutSuffix, key, isFuture) {\n var output = relativeTime[key].replace(/%d/i, number);\n\n if (withoutSuffix || isFuture) {\n return output;\n }\n\n switch (key) {\n case 'ss':\n case 'mm':\n case 'hh':\n case 'dd':\n return output + (number === 1 ? ' iliyopita' : ' zilizopita');\n case 'm':\n case 'h':\n case 'd':\n return output + ' iliyopita';\n case 'M':\n case 'y':\n return output + ' uliopita';\n case 'MM':\n case 'yy':\n return output + ' iliyopita';\n }\n }\n\n moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: 'dddd [ijayo saa] LT',\n lastDay: '[jana] LT',\n lastWeek: 'dddd [iliyopita saa] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: function (output) {\n return output === 'hivi punde' ? 'tokea ' + output : output;\n },\n s: 'hivi punde',\n ss: relativeTimeWithSuffix,\n m: relativeTimeWithSuffix,\n mm: relativeTimeWithSuffix,\n h: relativeTimeWithSuffix,\n hh: relativeTimeWithSuffix,\n d: relativeTimeWithSuffix,\n dd: relativeTimeWithSuffix,\n M: relativeTimeWithSuffix,\n MM: relativeTimeWithSuffix,\n y: relativeTimeWithSuffix,\n yy: relativeTimeWithSuffix,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$2 = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$1 = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$1[a] || suffixes$1[b] || suffixes$1[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n //! moment.js locale configuration\n\n moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_пʼятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_пʼятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_пʼятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: '%s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: '%s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n moment.locale('en');\n\n return moment;\n\n})));\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLocale } from '@nextcloud/l10n'\nimport moment from 'moment'\nimport { setUp as setUpContactsMenu } from './components/ContactsMenu.ts'\nimport { setUp as setUpMainMenu } from './components/MainMenu.ts'\nimport { setUp as setUpUserMenu } from './components/UserMenu.ts'\nimport { initSessionHeartBeat } from './session-heartbeat.ts'\nimport { initFallbackClipboardAPI } from './utils/ClipboardFallback.ts'\nimport { interceptRequests } from './utils/xhr-request.js'\n\n// moment resolves its locales through require(), which ES modules do not provide\nimport 'moment/min/locales.js'\n\n/**\n * Moment doesn't have aliases for every locale and doesn't parse some locale IDs correctly so we need to alias them\n */\nconst localeAliases: Record<string, string> = {\n\tzh: 'zh-cn',\n\tzh_Hans: 'zh-cn',\n\tzh_Hans_CN: 'zh-cn',\n\tzh_Hans_HK: 'zh-cn',\n\tzh_Hans_MO: 'zh-cn',\n\tzh_Hans_SG: 'zh-cn',\n\tzh_Hant: 'zh-hk',\n\tzh_Hant_HK: 'zh-hk',\n\tzh_Hant_MO: 'zh-mo',\n\tzh_Hant_TW: 'zh-tw',\n}\nconst locale = localeAliases[getLocale()] ?? getLocale()\n\n/**\n * Set users locale to moment.js as soon as possible\n */\nmoment.locale(locale)\n\n/**\n * Initializes core\n */\nexport function initCore() {\n\tinterceptRequests()\n\tinitFallbackClipboardAPI()\n\n\tinitSessionHeartBeat()\n\n\tsetUpMainMenu()\n\tsetUpUserMenu()\n\tsetUpContactsMenu()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @return {boolean} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*!\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const appConfig = window.oc_appconfig || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\nimport { logger } from '../utils/logger.ts'\n\n/**\n * Returns the capabilities\n *\n * @return {Array} capabilities\n *\n * @since 14.0.0\n */\nexport function getCapabilities() {\n\tif (OC.debug) {\n\t\tlogger.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\t}\n\treturn realGetCapabilities()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!<Favorite>!$_'\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"mdi-folder-move\\\" viewBox=\\\"0 0 24 24\\\"><path d=\\\"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\\\" /></svg>\"","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2015 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport IconMove from '@mdi/svg/svg/folder-move.svg?raw'\nimport IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'\nimport { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { basename } from '@nextcloud/paths'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { defineAsyncComponent } from 'vue'\nimport { logger } from '../utils/logger.ts'\n\n/**\n * this class to ease the usage of dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tYES_NO_BUTTONS: 70,\n\t/** @deprecated use `@nextcloud/dialogs` */\n\tOK_BUTTONS: 71,\n\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_MOVE: 2,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY: 3,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\t/** @deprecated use FilePickerType from `@nextcloud/dialogs` */\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t/**\n\t * displays alert dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\n\t/**\n\t * displays info dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {(number|{type: number, confirm: string, cancel: string, confirmClasses: string})} buttons text content of buttons\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmDestructive: function(text, title, buttons = Dialogs.OK_BUTTONS, callback = () => {}) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(text)\n\t\t\t.setButtons(buttons === Dialogs.OK_BUTTONS\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: Dialogs._getLegacyButtons(buttons, callback))\n\t\t\t.build()\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays confirmation dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @return {Promise}\n\t *\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tconfirmHtml: function(text, title, callback) {\n\t\treturn (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText('')\n\t\t\t.setButtons([\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'No'),\n\t\t\t\t\tcallback: () => {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback.clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t\t.build()\n\t\t\t.setHTML(text)\n\t\t\t.show()\n\t\t\t.then(() => {\n\t\t\t\tif (!callback.clicked) {\n\t\t\t\t\tcallback(false)\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * displays prompt dialog\n\t *\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @return {Promise}\n\t *\n\t * @deprecated Use NcDialog from `@nextcloud/vue` instead\n\t */\n\tprompt: async function(text, title, callback, modal, name, password) {\n\t\tconst result = await spawnDialog(\n\t\t\tdefineAsyncComponent(() => import('../components/LegacyDialogPrompt.vue')),\n\t\t\t{\n\t\t\t\ttext,\n\t\t\t\tname: title,\n\t\t\t\tinputName: name,\n\t\t\t\tisPassword: !!password,\n\t\t\t},\n\t\t)\n\t\t// the payload of a close event with several arguments is their list\n\t\tcallback(...(Array.isArray(result) ? result : [result]))\n\t},\n\n\t/**\n\t * Legacy wrapper to the new Vue based filepicker from `@nextcloud/dialogs`\n\t *\n\t * Prefer to use the Vue filepicker directly instead.\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {Function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetype] mimetype to filter by - directories will always be included\n\t * @param {boolean} [_modal] do not use\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {object} [options] additonal options that need to be set\n\t * @param {Function} [options.filter] filter function for advanced filtering\n\t * @param {boolean} [options.allowDirectoryChooser] Allow to select directories\n\t * @deprecated since 27.1.0 use the filepicker from `@nextcloud/dialogs` instead\n\t */\n\t// eslint-disable-next-line no-unused-vars\n\tfilepicker(title, callback, multiselect = false, mimetype = undefined, _modal = undefined, type = FilePickerType.Choose, path = undefined, options = undefined) {\n\t\t/**\n\t\t * Create legacy callback wrapper to support old filepicker syntax\n\t\t *\n\t\t * @param fn The original callback\n\t\t * @param type The file picker type which was used to pick the file(s)\n\t\t */\n\t\tconst legacyCallback = (fn, type) => {\n\t\t\tconst getPath = (node) => {\n\t\t\t\tconst root = node?.root || ''\n\t\t\t\tlet path = node?.path || ''\n\t\t\t\t// TODO: Fix this in @nextcloud/files\n\t\t\t\tif (path.startsWith(root)) {\n\t\t\t\t\tpath = path.slice(root.length) || '/'\n\t\t\t\t}\n\t\t\t\treturn path\n\t\t\t}\n\n\t\t\tif (multiselect) {\n\t\t\t\treturn (nodes) => fn(nodes.map(getPath), type)\n\t\t\t} else {\n\t\t\t\treturn (nodes) => fn(getPath(nodes[0]), type)\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Coverting a Node into a legacy file info to support the OC.dialogs.filepicker filter function\n\t\t *\n\t\t * @param node The node to convert\n\t\t */\n\t\tconst nodeToLegacyFile = (node) => ({\n\t\t\tid: node.fileid || null,\n\t\t\tpath: node.path,\n\t\t\tmimetype: node.mime || null,\n\t\t\tmtime: node.mtime?.getTime() || null,\n\t\t\tpermissions: node.permissions,\n\t\t\tname: node.attributes?.displayName || node.basename,\n\t\t\tetag: node.attributes?.etag || null,\n\t\t\thasPreview: node.attributes?.hasPreview || null,\n\t\t\tmountType: node.attributes?.mountType || null,\n\t\t\tquotaAvailableBytes: node.attributes?.quotaAvailableBytes || null,\n\t\t\ticon: null,\n\t\t\tsharePermissions: null,\n\t\t})\n\n\t\tconst builder = getFilePickerBuilder(title)\n\n\t\t// Setup buttons\n\t\tif (type === this.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t(options.buttons || []).forEach((button) => {\n\t\t\t\tbuilder.addButton({\n\t\t\t\t\tcallback: legacyCallback(callback, button.type),\n\t\t\t\t\tlabel: button.text,\n\t\t\t\t\tvariant: button.defaultButton ? 'primary' : 'secondary',\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tbuilder.setButtonFactory((nodes, path) => {\n\t\t\t\tconst buttons = []\n\t\t\t\tconst [node] = nodes\n\t\t\t\tconst target = node?.displayname || node?.basename || basename(path)\n\n\t\t\t\tif (type === FilePickerType.Choose) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Choose),\n\t\t\t\t\t\tlabel: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Copy),\n\t\t\t\t\t\tlabel: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\ticon: IconCopy,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === FilePickerType.Move || type === FilePickerType.CopyMove) {\n\t\t\t\t\tbuttons.push({\n\t\t\t\t\t\tcallback: legacyCallback(callback, FilePickerType.Move),\n\t\t\t\t\t\tlabel: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),\n\t\t\t\t\t\tvariant: type === FilePickerType.Move ? 'primary' : 'secondary',\n\t\t\t\t\t\ticon: IconMove,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn buttons\n\t\t\t})\n\t\t}\n\n\t\tif (mimetype) {\n\t\t\tbuilder.setMimeTypeFilter(typeof mimetype === 'string' ? [mimetype] : (mimetype || []))\n\t\t}\n\t\tif (typeof options?.filter === 'function') {\n\t\t\tbuilder.setFilter((node) => options.filter(nodeToLegacyFile(node)))\n\t\t}\n\t\tbuilder.allowDirectories(options?.allowDirectoryChooser === true || mimetype?.includes('httpd/unix-directory') || false)\n\t\t\t.setMultiSelect(multiselect)\n\t\t\t.startAt(path)\n\t\t\t.build()\n\t\t\t.pick()\n\t},\n\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t *\n\t * @param content\n\t * @param title\n\t * @param dialogType\n\t * @param buttons\n\t * @param callback\n\t * @param modal\n\t * @param allowHtml\n\t * @deprecated 30.0.0 Use `@nextcloud/dialogs` instead or build your own with `@nextcloud/vue` NcDialog\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback = () => {}, modal, allowHtml) {\n\t\tconst builder = (new DialogBuilder())\n\t\t\t.setName(title)\n\t\t\t.setText(allowHtml ? '' : content)\n\t\t\t.setButtons(Dialogs._getLegacyButtons(buttons, callback))\n\n\t\tswitch (dialogType) {\n\t\t\tcase 'alert':\n\t\t\t\tbuilder.setSeverity('warning')\n\t\t\t\tbreak\n\t\t\tcase 'notice':\n\t\t\t\tbuilder.setSeverity('info')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst dialog = builder.build()\n\n\t\tif (allowHtml) {\n\t\t\tdialog.setHTML(content)\n\t\t}\n\n\t\treturn dialog.show().then(() => {\n\t\t\tif (!callback._clicked) {\n\t\t\t\tcallback(false)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Helper for legacy API\n\t *\n\t * @param buttons\n\t * @param callback\n\t * @deprecated\n\t */\n\t_getLegacyButtons(buttons, callback) {\n\t\tconst buttonList = []\n\n\t\tswitch (typeof buttons === 'object' ? buttons.type : buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.cancel ?? t('core', 'No'),\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'Yes'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTONS:\n\t\t\t\tbuttonList.push({\n\t\t\t\t\tlabel: buttons?.confirm ?? t('core', 'OK'),\n\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tcallback._clicked = true\n\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error('Invalid call to OC.dialogs')\n\t\t\t\tbreak\n\t\t}\n\t\treturn buttonList\n\t},\n}\n\nexport default Dialogs\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014 ownCloud, Inc.\n * SPDX-FileCopyrightText: 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tloadTranslations,\n\tregister,\n\ttranslate,\n\ttranslatePlural,\n\tunregister,\n} from '@nextcloud/l10n'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n * @deprecated 26.0.0 use https://www.npmjs.com/package/@nextcloud/l10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @deprecated 26.0.0 use `loadTranslations` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @return {Promise} promise\n\t */\n\tload: loadTranslations,\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @deprecated 26.0.0 use `register` from https://www.npmjs.com/package/@nextcloud/l10\n\t *\n\t * @param {string} appName name of the app\n\t * @param {Record<string, string>} bundle bundle\n\t */\n\tregister,\n\n\t/**\n\t * @private\n\t * @deprecated 26.0.0 use `unregister` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\t_unregister: unregister,\n\n\t/**\n\t * Translate a string\n\t *\n\t * @deprecated 26.0.0 use `translate` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {boolean} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @return {string}\n\t */\n\ttranslate,\n\n\t/**\n\t * Translate a plural string\n\t *\n\t * @deprecated 26.0.0 use `translatePlural` from https://www.npmjs.com/package/@nextcloud/l10n\n\t *\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {object} [vars] map of placeholder key to value\n\t * @param {Array} [options] options array\n\t * @param {boolean} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @return {string} Translated string\n\t */\n\ttranslatePlural,\n}\n\nexport default L10n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\n\nconst iconCache = new Map()\n\n/**\n * Return the url to icon of the given mimeType\n *\n * @param {string} mimeType The mimeType to get the icon for\n * @return {string} Url to the icon for mimeType\n */\nexport function getIconUrl(mimeType) {\n\tif (typeof mimeType === 'undefined') {\n\t\treturn undefined\n\t}\n\n\twhile (mimeType in window.OC.MimeTypeList.aliases) {\n\t\tmimeType = window.OC.MimeTypeList.aliases[mimeType]\n\t}\n\n\tif (!iconCache.has(mimeType)) {\n\t\tlet gotIcon = false\n\t\tlet path = ''\n\t\t// First try to get the correct icon from the current legacy-theme\n\t\tif (OC.theme.folder !== '' && Array.isArray(OC.MimeTypeList.themes[OC.theme.folder])) {\n\t\t\tpath = getRootUrl() + '/themes/' + window.OC.theme.folder + '/core/img/filetypes/'\n\t\t\tconst icon = getMimeTypeIcon(mimeType, window.OC.MimeTypeList.themes[OC.theme.folder])\n\t\t\tif (icon) {\n\t\t\t\tgotIcon = true\n\t\t\t\tpath += icon + '.svg'\n\t\t\t}\n\t\t}\n\n\t\t// theming is always enabled since Nextcloud 20 so we get it from that\n\t\tif (!gotIcon) {\n\t\t\tpath = generateUrl('/apps/theming/img/core/filetypes/' + getMimeTypeIcon(mimeType, window.OC.MimeTypeList.files) + '.svg')\n\t\t}\n\n\t\tpath += '?v=' + window.OCA.Theming.cacheBuster\n\t\t// Cache the result\n\t\ticonCache.set(mimeType, path)\n\t}\n\n\treturn iconCache.get(mimeType)\n}\n\n/**\n * Return the file icon we want to use for the given mimeType.\n * The file needs to be present in the supplied file list\n *\n * @param {string} mimeType The mimeType we want an icon for\n * @param {string[]} files The available icons in this theme\n * @return {string | null} The icon to use or null if there is no match\n */\nfunction getMimeTypeIcon(mimeType, files) {\n\tconst icon = mimeType.replace(new RegExp('/', 'g'), '-')\n\n\t// Generate path\n\tif (mimeType === 'dir' && files.includes('folder')) {\n\t\treturn 'folder'\n\t} else if (mimeType === 'dir-encrypted' && files.includes('folder-encrypted')) {\n\t\treturn 'folder-encrypted'\n\t} else if (mimeType === 'dir-shared' && files.includes('folder-shared')) {\n\t\treturn 'folder-shared'\n\t} else if (mimeType === 'dir-public' && files.includes('folder-public')) {\n\t\treturn 'folder-public'\n\t} else if ((mimeType === 'dir-external' || mimeType === 'dir-external-root') && files.includes('folder-external')) {\n\t\treturn 'folder-external'\n\t} else if (files.includes(icon)) {\n\t\treturn icon\n\t} else if (files.includes(icon.split('-')[0])) {\n\t\treturn icon.split('-')[0]\n\t} else if (files.includes('file')) {\n\t\treturn 'file'\n\t}\n\n\treturn null\n}\n\n/**\n * Clear the icon cache\n */\nexport function clearIconCache() {\n\ticonCache.clear()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n */\nexport default {\n\t/**\n\t * Displayes a \"Saving...\" message in the given message placeholder\n\t *\n\t * @param selector - Query selectior for the element to display the message in\n\t */\n\tstartSaving(selector: string) {\n\t\tthis.startAction(selector, t('core', 'Saving …'))\n\t},\n\n\t/**\n\t * Displayes a custom message in the given message placeholder\n\t *\n\t * @param selector - Query selectior for the element to display the message in\n\t * @param message - Plain text message to display (no HTML allowed)\n\t */\n\tstartAction(selector: string, message: string) {\n\t\tconst el = document.querySelector(selector)\n\t\tif (!el || !(el instanceof HTMLElement)) {\n\t\t\treturn\n\t\t}\n\n\t\tel.textContent = message\n\t\tel.classList.remove('success')\n\t\tel.classList.remove('error')\n\t\tel.getAnimations?.().forEach((animation) => animation.cancel())\n\t\tel.style.display = 'block'\n\t},\n\n\t/**\n\t * Displayes an success/error message in the given selector\n\t *\n\t * @param selector - Query selectior for the element to display the message in\n\t * @param response - Response of the server\n\t * @param response.data - Data of the servers response\n\t * @param response.data.message - Plain text message to display (no HTML allowed)\n\t * @param response.status - is being used to decide whether the message is displayed as an error/success\n\t */\n\tfinishedSaving(selector: string, response: { data: { message: string }, status: string }) {\n\t\tthis.finishedAction(selector, response)\n\t},\n\n\t/**\n\t * Displayes an success/error message in the given selector\n\t *\n\t * @param selector - Query selector for the element to display the message in\n\t * @param response - Response of the server\n\t * @param response.data - Data of the servers response\n\t * @param response.data.message - Plain text message to display (no HTML allowed)\n\t * @param response.status . Is being used to decide whether the message is displayed as an error/success\n\t */\n\tfinishedAction(selector: string, response: { data: { message: string }, status: string }) {\n\t\tif (response.status === 'success') {\n\t\t\tthis.finishedSuccess(selector, response.data.message)\n\t\t} else {\n\t\t\tthis.finishedError(selector, response.data.message)\n\t\t}\n\t},\n\n\t/**\n\t * Displayes an success message in the given selector\n\t *\n\t * @param selector - Query selector for the element to display the message in\n\t * @param message - Plain text success message to display (no HTML allowed)\n\t */\n\tfinishedSuccess(selector: string, message: string) {\n\t\tconst el = document.querySelector(selector)\n\t\tif (!el || !(el instanceof HTMLElement)) {\n\t\t\treturn\n\t\t}\n\n\t\tel.textContent = message\n\t\tel.classList.remove('error')\n\t\tel.classList.add('success')\n\t\tel.getAnimations?.().forEach((animation) => animation.cancel())\n\n\t\twindow.setTimeout(fadeOut, 3000)\n\t\tel.style.display = 'block'\n\n\t\t/**\n\t\t * Fades out the message element\n\t\t */\n\t\tfunction fadeOut() {\n\t\t\tif (!el || !(el instanceof HTMLElement)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst animation = el.animate?.(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1 },\n\t\t\t\t\t{ opacity: 0 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 900,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tif (animation) {\n\t\t\t\tanimation.addEventListener('finish', () => {\n\t\t\t\t\tel.style.display = 'none'\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(() => {\n\t\t\t\t\tel.style.display = 'none'\n\t\t\t\t}, 900)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Displayes an error message in the given selector\n\t *\n\t * @param selector - Query selector for the element to display the message in\n\t * @param message - Plain text error message to display (no HTML allowed)\n\t */\n\tfinishedError(selector: string, message: string) {\n\t\tconst el = document.querySelector(selector)\n\t\tif (!el || !(el instanceof HTMLElement)) {\n\t\t\treturn\n\t\t}\n\n\t\tel.textContent = message\n\t\tel.classList.remove('success')\n\t\tel.classList.add('error')\n\t\tel.style.display = 'block'\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { confirmPassword, isPasswordConfirmationRequired } from '@nextcloud/password-confirmation'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequiresPasswordConfirmation() {\n\t\treturn isPasswordConfirmationRequired()\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {object} options options currently not used by confirmPassword\n\t * @param {Function} rejectCallback error callback function\n\t *\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\trequirePasswordConfirmation(callback, options, rejectCallback) {\n\t\tconfirmPassword().then(callback, rejectCallback)\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default {\n\n\t/**\n\t * @type {Array.<OC.Plugin>}\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {string} targetName app name / class name to hook into\n\t * @return {Array.<OC.Plugin>} array of plugins\n\t */\n\tgetPlugins(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tattach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {string} targetName app name / class name\n\t * @param {object} targetObject to be extended\n\t * @param {object} [options] options\n\t */\n\tdetach(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Parses a URL query string into a JS map\n *\n * @param queryString - Query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @return Object containing key/values matching the URL parameters\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function parse(queryString: string): Record<string, string> {\n\tconst params = new URLSearchParams(queryString)\n\treturn Object.fromEntries(params.entries())\n}\n\n/**\n * Builds a URL query from a JS map.\n *\n * @param params - Object containing key/values matching the URL parameters\n * @return String containing a URL query (without question) mark\n * @deprecated 33.0.0 - Use `URLSearchParams` instead\n */\nexport function build(params: Record<string, string>): string {\n\tif (!params) {\n\t\treturn ''\n\t}\n\n\tconst search = new URLSearchParams(params)\n\treturn search.toString()\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tgetRootUrl as realGetRootUrl,\n} from '@nextcloud/router'\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexport function linkToRemoteBase(service) {\n\treturn realGetRootUrl() + '/remote.php/' + service\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const theme = window._theme || {}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport OC from './index.js'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace] whether to replace instead of pushing\n\t */\n\t_pushState(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {object | string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t *\n\t * @return {string}\n\t */\n\t_parseHashQuery() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @return {object} map of parameters\n\t */\n\tparseUrlQuery() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\treturn {\n\t\t\t...(params || {}),\n\t\t\t...OC.parseQueryString(this._decodeQuery(location.search)),\n\t\t}\n\t},\n\n\t_onPopState(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (typeof params === 'string') {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize as humanFileSize } from '@nextcloud/files'\nimport moment from 'moment'\nimport { logger } from '../utils/logger.ts'\nimport OC from './index.js'\nimport History from './util-history.js'\n\n/**\n * @param {any} t -\n */\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n *\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\t/**\n\t * @deprecated use https://nextcloud.github.io/nextcloud-files/functions/formatFileSize.html\n\t */\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t *\n\t * @param {string} string file size in human-readable format\n\t * @return {number} or null if string could not be parsed\n\t */\n\tcomputerFileSize(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tconst bytesArray = {\n\t\t\tb: 1,\n\t\t\tk: 1024,\n\t\t\tkb: 1024,\n\t\t\tmb: 1024 * 1024,\n\t\t\tm: 1024 * 1024,\n\t\t\tgb: 1024 * 1024 * 1024,\n\t\t\tg: 1024 * 1024 * 1024,\n\t\t\ttb: 1024 * 1024 * 1024 * 1024,\n\t\t\tt: 1024 * 1024 * 1024 * 1024,\n\t\t\tpb: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\tp: 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tlet bytes\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @return {string} timestamp formatted as requested\n\t */\n\tformatDate(timestamp, format) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @return {string} human readable difference from now\n\t */\n\trelativeModifiedDate(timestamp) {\n\t\tif (window.TESTING === undefined && OC.debug) {\n\t\t\tlogger.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\t}\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @return {number} width of scrollbar\n\t */\n\tgetScrollBarWidth() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @return {Date} date with stripped time\n\t */\n\tstripTime(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t *\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @return {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x])\n\t\t\t\tconst bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here to include null == undefined\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t *\n\t * @param {Function} callback function to call on success\n\t * @param {number} interval in milliseconds\n\t */\n\twaitFor(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t *\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @return {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\nimport {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from '@nextcloud/l10n'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoin,\n} from '@nextcloud/paths'\nimport {\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgenerateUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\nimport { logger } from '../utils/logger.ts'\nimport { isUserAdmin } from './admin.js'\nimport { appConfig } from './appconfig.js'\nimport appswebroots from './appswebroots.js'\nimport { getCapabilities } from './capabilities.js'\nimport Config from './config.js'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants.js'\nimport { currentUser, getCurrentUser } from './currentuser.js'\nimport { debug } from './debug.js'\nimport Dialogs from './dialogs.js'\nimport EventSource from './eventsource.js'\nimport L10N from './l10n.js'\nimport * as MimeType from './mimeType.js'\nimport msg from './msg.js'\nimport PasswordConfirmation from './password-confirmation.js'\nimport Plugins from './plugins.js'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string.ts'\nimport { getRequestToken } from './requesttoken.ts'\nimport {\n\tlinkToRemoteBase,\n} from './routing.js'\nimport { theme } from './theme.js'\nimport Util from './util.js'\nimport webroot from './webroot.js'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\tappConfig,\n\tappswebroots,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type {string}\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\tMimeType,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * This is already handled by `interceptRequests` in `core/src/init.js`.\n\t *\n\t * @deprecated 33.0.0 - unused by Nextcloud and only a stub remains. Just remove usage.\n\t */\n\tregisterXHRForErrorProcessing: () => {},\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 20.0.0 use @nextcloud/capabilities instead\n\t */\n\tgetCapabilities,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths: join,\n\n\t/**\n\t * @deprecated 20.0.0 use `getCanonicalLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetCanonicalLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLocale` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLocale,\n\t/**\n\t * @deprecated 26.0.0 use `getLanguage` from https://www.npmjs.com/package/@nextcloud/l10n\n\t */\n\tgetLanguage,\n\n\t// Query string helpers\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\t/**\n\t * @deprecated 28.0.0 use methods from '@nextcloud/password-confirmation'\n\t */\n\tPasswordConfirmation,\n\tPlugins,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `generateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @param {string} service service name\n\t * @param {number} version OCS API version\n\t * @return {string} OCS API base path\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: (service, version) => {\n\t\treturn generateOcsUrl(service, {}, {\n\t\t\tocsVersion: version || 1,\n\t\t}) + '/'\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type {string}\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', (e) => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tlogger.info('OC.requestToken changed', { token: e.token })\n})\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Namespace for apps\n *\n * @namespace OCA\n */\nexport default { }\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\n/**\n * Set the page heading\n *\n * @param {string} heading page title from the history api\n * @since 27.0.0\n */\nexport function setPageHeading(heading) {\n\tconst headingEl = document.getElementById('page-heading-level-1')\n\tif (headingEl) {\n\t\theadingEl.textContent = heading\n\t}\n}\nexport default {\n\t/**\n\t * @return {boolean} Whether the user opted-out of shortcuts so that they should not be registered\n\t */\n\tdisableKeyboardShortcuts() {\n\t\treturn loadState('theming', 'shortcutsDisabled', false)\n\t},\n\tsetPageHeading,\n}\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword, isPasswordConfirmationRequired, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * @param method - 'post' or 'delete'\n * @param endpoint - endpoint endpoint\n * @param options - destructuring object\n * @param options.data - option data\n * @param options.success - success callback\n * @param options.error - error callback\n */\nasync function call(method: string, endpoint: string, options: { data?: unknown, success?: (data: unknown) => void, error?: (e: unknown) => void } = {}) {\n\tif ((method === 'post' || method === 'delete') && isPasswordConfirmationRequired(PwdConfirmationMode.Lax)) {\n\t\tawait confirmPassword()\n\t}\n\n\ttry {\n\t\tconst { data } = await axios.request({\n\t\t\tmethod: method.toLowerCase(),\n\t\t\turl: generateOcsUrl('apps/provisioning_api/api/v1/config/apps') + endpoint,\n\t\t\tdata: options.data || {},\n\t\t})\n\t\toptions.success?.(data.ocs.data)\n\t} catch (error) {\n\t\toptions.error?.(error)\n\t}\n}\n\n/**\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @since 11.0.0\n */\nexport function getApps(options) {\n\tcall('get', '', options)\n}\n\n/**\n * @param app app id\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function getKeys(app, options) {\n\tcall('get', '/' + app, options)\n}\n\n/**\n * @param app app id\n * @param key key\n * @param defaultValue default value\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function getValue(app, key, defaultValue, options) {\n\toptions = options || {}\n\toptions.data = {\n\t\tdefaultValue,\n\t}\n\n\tcall('get', '/' + app + '/' + key, options)\n}\n\n/**\n * @param app app id\n * @param key key\n * @param value value\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function setValue(app, key, value, options) {\n\toptions = options || {}\n\toptions.data = {\n\t\tvalue,\n\t}\n\n\tcall('post', '/' + app + '/' + key, options)\n}\n\n/**\n * @param app app id\n * @param key key\n * @param [options] destructuring object\n * @param [options.success] success callback\n * @param [options.error] error callback\n * @since 11.0.0\n */\nexport function deleteKey(app, key, options) {\n\tcall('delete', '/' + app + '/' + key, options)\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport escapeHTML from 'escape-html'\n\n/**\n * @typedef TypeDefinition\n * @function action This action is executed to let the user select a resource\n * @param {string} icon Contains the icon css class for the type\n * @function Object() { [native code] }\n */\n\n/**\n * @type {TypeDefinition[]}\n */\nconst types = {}\n\n/**\n * Those translations will be used by the vue component but they should be shipped with the server\n * FIXME: Those translations should be added to the library\n *\n * @return {Array}\n */\nexport function l10nProjects() {\n\treturn [\n\t\tt('core', 'Add to a project'),\n\t\tt('core', 'Show details'),\n\t\tt('core', 'Hide details'),\n\t\tt('core', 'Rename project'),\n\t\tt('core', 'Failed to rename the project'),\n\t\tt('core', 'Failed to create a project'),\n\t\tt('core', 'Failed to add the item to the project'),\n\t\tt('core', 'Connect items to a project to make them easier to find'),\n\t\tt('core', 'Type to search for existing projects'),\n\t]\n}\n\nexport default {\n\t/**\n\t *\n\t * @param {string} type type\n\t * @param {TypeDefinition} typeDefinition typeDefinition\n\t */\n\tregisterType(type, typeDefinition) {\n\t\ttypes[type] = typeDefinition\n\t},\n\ttrigger(type) {\n\t\treturn types[type].action()\n\t},\n\tgetTypes() {\n\t\treturn Object.keys(types)\n\t},\n\tgetIcon(type) {\n\t\treturn types[type].typeIconClass || ''\n\t},\n\tgetLabel(type) {\n\t\treturn escapeHTML(types[type].typeString || type)\n\t},\n\tgetLink(type, id) {\n\t\t/* TODO: Allow action to be executed instead of href as well */\n\t\treturn typeof types[type] !== 'undefined' ? types[type].link(id) : ''\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/*\n * Detects links:\n * Either the http(s) protocol is given or two strings, basically limited to ascii with the last\n * word being at least one digit long,\n * followed by at least another character\n *\n * The downside: anything not ascii is excluded. Not sure how common it is in areas using different\n * alphabets… the upside: fake domains with similar looking characters won't be formatted as links\n *\n * This is a copy of the backend regex in IURLGenerator, make sure to adjust both when changing\n */\nconst urlRegex = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig\n\n/**\n * Converts plain text to rich text\n *\n * @param content - The plain text content\n */\nexport function plainToRich(content: string) {\n\treturn formatLinksRich(content)\n}\n\n/**\n * Converts rich text to plain text\n *\n * @param content - The rich text content\n */\nexport function richToPlain(content: string) {\n\treturn formatLinksPlain(content)\n}\n\n/**\n * Format links in the given content to rich text links\n *\n * @param content - The content containing plain text URLs\n */\nexport function formatLinksRich(content: string) {\n\treturn content.replace(urlRegex, function(_, leadingSpace, protocol, url, trailingSpace) {\n\t\tlet linkText = url\n\t\tif (!protocol) {\n\t\t\tprotocol = 'https://'\n\t\t} else if (protocol === 'http://') {\n\t\t\tlinkText = protocol + url\n\t\t}\n\n\t\treturn leadingSpace + '<a class=\"external\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"' + protocol + url + '\">' + linkText + '</a>' + trailingSpace\n\t})\n}\n\n/**\n * Format links in the given content to plain text links\n *\n * @param content - The content containing rich text URLs\n */\nexport function formatLinksPlain(content: string) {\n\tconst el = document.createElement('div')\n\tel.innerHTML = content\n\tel.querySelectorAll('a').forEach((anchor) => {\n\t\tanchor.replaceWith(document.createTextNode(anchor.getAttribute('href') || ''))\n\t})\n\n\treturn el.innerHTML\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateFilePath } from '@nextcloud/router'\n\nconst loadedScripts = {}\nconst loadedStylesheets = {}\n/**\n * @namespace OCP\n * @class Loader\n */\nexport default {\n\n\t/**\n\t * Load a script asynchronously\n\t *\n\t * @param {string} app the app name\n\t * @param {string} file the script file name\n\t * @return {Promise}\n\t */\n\tloadScript(app, file) {\n\t\tconst key = app + file\n\t\tif (Object.hasOwn(loadedScripts, key)) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tloadedScripts[key] = true\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tconst scriptPath = generateFilePath(app, 'js', file)\n\t\t\tconst script = document.createElement('script')\n\t\t\tscript.src = scriptPath\n\t\t\tscript.setAttribute('nonce', btoa(OC.requestToken))\n\t\t\tscript.onload = () => resolve()\n\t\t\tscript.onerror = () => reject(new Error(`Failed to load script from ${scriptPath}`))\n\t\t\tdocument.head.appendChild(script)\n\t\t})\n\t},\n\n\t/**\n\t * Load a stylesheet file asynchronously\n\t *\n\t * @param {string} app the app name\n\t * @param {string} file the script file name\n\t * @return {Promise}\n\t */\n\tloadStylesheet(app, file) {\n\t\tconst key = app + file\n\t\tif (Object.hasOwn(loadedStylesheets, key)) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tloadedStylesheets[key] = true\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\tconst stylePath = generateFilePath(app, 'css', file)\n\t\t\tconst link = document.createElement('link')\n\t\t\tlink.href = stylePath\n\t\t\tlink.type = 'text/css'\n\t\t\tlink.rel = 'stylesheet'\n\t\t\tlink.onload = () => resolve()\n\t\t\tlink.onerror = () => reject(new Error(`Failed to load stylesheet from ${stylePath}`))\n\t\t\tdocument.head.appendChild(link)\n\t\t})\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tshowError,\n\tshowInfo,\n\tshowMessage,\n\tshowSuccess,\n\tshowWarning,\n} from '@nextcloud/dialogs'\n\n/** @typedef {import('toastify-js')} Toast */\n\nexport default {\n\t/**\n\t * @deprecated 19.0.0 use `showSuccess` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tsuccess(text, options) {\n\t\treturn showSuccess(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showWarning` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\twarning(text, options) {\n\t\treturn showWarning(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showError` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\terror(text, options) {\n\t\treturn showError(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showInfo` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tinfo(text, options) {\n\t\treturn showInfo(text, options)\n\t},\n\t/**\n\t * @deprecated 19.0.0 use `showMessage` from the `@nextcloud/dialogs` package instead\n\t *\n\t * @param {string} text the toast text\n\t * @param {object} options options\n\t * @return {Toast}\n\t */\n\tmessage(text, options) {\n\t\treturn showMessage(text, options)\n\t},\n\n}\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport Accessibility from './accessibility.js'\nimport * as AppConfig from './appconfig.ts'\nimport Collaboration from './collaboration.js'\nimport * as Comments from './comments.ts'\nimport Loader from './loader.js'\nimport Toast from './toast.js'\n\n/** @namespace OCP */\nexport default {\n\tAccessibility,\n\tAppConfig,\n\tCollaboration,\n\t/**\n\t * @deprecated 33.0.0\n\t */\n\tComments,\n\tInitialState: {\n\t\t/**\n\t\t * @deprecated 18.0.0 add https://www.npmjs.com/package/@nextcloud/initial-state to your app\n\t\t */\n\t\tloadState,\n\t},\n\tLoader,\n\t/**\n\t * @deprecated 19.0.0 use the `@nextcloud/dialogs` package instead\n\t */\n\tToast,\n}\n","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { n, t } from '@nextcloud/l10n'\nimport { initCore } from './init.ts'\nimport OC from './OC/index.js'\nimport OCA from './OCA/index.js'\nimport OCP from './OCP/index.js'\n\nwindow.OC = OC\nsetDeprecatedProp('initCore', () => initCore, 'this is an internal function')\nwindow.OCP = OCP\nwindow.OCA = OCA\n\n// Expose translation functions to the global scope for legacy code\nwindow.t = t\nwindow.n = n\n\n/**\n * If not in a testing environment, log a warning to the console if debugging is enabled.\n *\n * @param {...unknown} args - the arguments to log to the console\n * @private\n */\nfunction warnIfNotTesting(...args) {\n\tif (window.TESTING === undefined) {\n\t\t// eslint-disable-next-line no-console\n\t\tOC.debug && console.warn.apply(console, args)\n\t}\n}\n\n/**\n * @param {string|string[]} global - a string or array of strings with the name of the global variable(s) to deprecate\n * @param {() => unknown} cb - a callback that returns the value of the global variable when accessed\n * @param {string} msg - an optional message to show in the warning\n */\nfunction setDeprecatedProp(global, cb, msg) {\n\t(Array.isArray(global) ? global : [global]).forEach((global) => {\n\t\tif (window[global] !== undefined) {\n\t\t\tdelete window[global]\n\t\t}\n\t\tObject.defineProperty(window, global, {\n\t\t\tget: () => {\n\t\t\t\tif (msg) {\n\t\t\t\t\twarnIfNotTesting(`${global} is deprecated: ${msg}`)\n\t\t\t\t} else {\n\t\t\t\t\twarnIfNotTesting(`${global} is deprecated`)\n\t\t\t\t}\n\n\t\t\t\treturn cb()\n\t\t\t},\n\t\t})\n\t})\n}\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.50.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n// eslint-disable-next-line es/no-object-create -- safe\nvar create = Object.create || Object;\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || create(null));\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe\n var object = Object.create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nmodule.exports = Object.create ? Object.create(null) : {};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || (classof(it) === 'Arguments' ? ArrayPrototype[ITERATOR] : undefined);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method-internal');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (isCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator-internal');\nvar getIteratorMethod = require('../internals/get-iterator-method-internal');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: null,\n last: null,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: null,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = null;\n entry = entry.next;\n }\n state.first = state.last = null;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: null\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || getBuiltInNodeModule('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n return it.flags;\n} : function (it) {\n return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n ? call(regExpFlagsGetterImplementation, it)\n : it.flags;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.1.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new globalThis.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new globalThis.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = globalThis.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = globalThis[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n type = classof(value);\n transferred = undefined;\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = globalThis.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'MIDIAccess':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'RTCDataChannel':\n case 'TransformStream':\n case 'WebTransportReceiveStream':\n case 'WebTransportSendStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { initCore } from './init.ts'\nimport OC from './OC/index.js'\n\nimport './globals.js'\n// Legacy Vue 2 code observes the Vue 3 nodes of the files store and leaves\n// reactive proxies in their data, which the native structuredClone rejects\n// when a node is cloned. core-js' implementation clones them like plain data.\nimport 'core-js/stable/structured-clone.js'\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tinitCore()\n\twindow.onpopstate = OC.Util.History._onPopState.bind(OC.Util.History)\n})\n\n// Fix error \"CSRF check failed\"\ndocument.addEventListener('DOMContentLoaded', function() {\n\tconst form = document.getElementById('password-input-form') as HTMLFormElement | null\n\tif (form) {\n\t\tform.addEventListener('submit', async function(event) {\n\t\t\tevent.preventDefault()\n\t\t\tconst requestToken = document.getElementById('requesttoken') as HTMLInputElement | null\n\t\t\tif (requestToken) {\n\t\t\t\tconst url = generateUrl('/csrftoken')\n\t\t\t\tconst resp = await Axios.get(url)\n\t\t\t\trequestToken.value = resp.data.token\n\t\t\t}\n\t\t\tform.submit()\n\t\t})\n\t}\n})\n"],"file":"core-main.mjs"} |