{"version":3,"sources":["webpack:////home/ubuntu/node_modules/moment/locale/fr-ca.js","webpack:////home/ubuntu/node_modules/moment/locale/tlh.js","webpack:///./src/components/UIComponents/Charts/PieChart.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-tn.js","webpack:////home/ubuntu/node_modules/moment/locale/tet.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-ly.js","webpack:////home/ubuntu/node_modules/moment/locale/ar.js","webpack:////home/ubuntu/node_modules/moment/locale/tzm.js","webpack:////home/ubuntu/node_modules/moment/locale/pt.js","webpack:////home/ubuntu/node_modules/moment/locale/zh-mo.js","webpack:///(webpack)/buildin/module.js","webpack:////home/ubuntu/node_modules/moment/locale/cv.js","webpack:////home/ubuntu/node_modules/moment/locale/bs.js","webpack:////home/ubuntu/node_modules/moment/locale/sk.js","webpack:////home/ubuntu/node_modules/moment/locale/es-do.js","webpack:////home/ubuntu/node_modules/moment/moment.js","webpack:////home/ubuntu/node_modules/moment/locale/sr-cyrl.js","webpack:////home/ubuntu/node_modules/moment/locale/pl.js","webpack:////home/ubuntu/node_modules/moment/locale/tg.js","webpack:////home/ubuntu/node_modules/moment/locale/jv.js","webpack:////home/ubuntu/node_modules/moment/locale/zh-hk.js","webpack:////home/ubuntu/node_modules/moment/locale/lt.js","webpack:////home/ubuntu/node_modules/moment/locale/it-ch.js","webpack:////home/ubuntu/node_modules/moment/locale/pt-br.js","webpack:////home/ubuntu/node_modules/moment/locale sync ^\\.\\/.*$","webpack:////home/ubuntu/node_modules/moment/locale/ca.js","webpack:////home/ubuntu/node_modules/moment/locale/es-us.js","webpack:////home/ubuntu/node_modules/moment/locale/ms-my.js","webpack:////home/ubuntu/node_modules/moment/locale/de-ch.js","webpack:////home/ubuntu/node_modules/moment/locale/mi.js","webpack:////home/ubuntu/node_modules/moment/locale/ms.js","webpack:////home/ubuntu/node_modules/moment/locale/zh-tw.js","webpack:////home/ubuntu/node_modules/moment/locale/en-il.js","webpack:////home/ubuntu/node_modules/moment/locale/en-nz.js","webpack:////home/ubuntu/node_modules/moment/locale/tzm-latn.js","webpack:////home/ubuntu/node_modules/moment/locale/bn-bd.js","webpack:////home/ubuntu/node_modules/moment/locale/gu.js","webpack:////home/ubuntu/node_modules/moment/locale/eo.js","webpack:////home/ubuntu/node_modules/moment/locale/km.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-kw.js","webpack:////home/ubuntu/node_modules/moment/locale/zh-cn.js","webpack:////home/ubuntu/node_modules/moment/locale/gl.js","webpack:////home/ubuntu/node_modules/moment/locale/ss.js","webpack:////home/ubuntu/node_modules/moment/locale/gom-deva.js","webpack:////home/ubuntu/node_modules/moment/locale/hr.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-ma.js","webpack:////home/ubuntu/node_modules/moment/locale/nl.js","webpack:////home/ubuntu/node_modules/moment/locale/de.js","webpack:////home/ubuntu/node_modules/moment/locale/bg.js","webpack:////home/ubuntu/node_modules/moment/locale/se.js","webpack:////home/ubuntu/node_modules/moment/locale/ku.js","webpack:////home/ubuntu/node_modules/moment/locale/ta.js","webpack:////home/ubuntu/node_modules/vue-chartjs/es/mixins/index.js","webpack:////home/ubuntu/node_modules/vue-chartjs/es/BaseCharts.js","webpack:////home/ubuntu/node_modules/moment/locale/bm.js","webpack:////home/ubuntu/node_modules/moment/locale/en-sg.js","webpack:////home/ubuntu/node_modules/moment/locale/id.js","webpack:////home/ubuntu/node_modules/moment/locale/x-pseudo.js","webpack:////home/ubuntu/node_modules/moment/locale/hy-am.js","webpack:////home/ubuntu/node_modules/moment/locale/en-ca.js","webpack:////home/ubuntu/node_modules/moment/locale/ka.js","webpack:////home/ubuntu/node_modules/moment/locale/tk.js","webpack:////home/ubuntu/node_modules/moment/locale/te.js","webpack:///./src/components/UIComponents/Charts/mixins/reactiveChart.js","webpack:////home/ubuntu/node_modules/moment/locale/sr.js","webpack:////home/ubuntu/node_modules/moment/locale/be.js","webpack:////home/ubuntu/node_modules/moment/locale/fo.js","webpack:////home/ubuntu/node_modules/moment/locale/eu.js","webpack:////home/ubuntu/node_modules/moment/locale/gd.js","webpack:////home/ubuntu/node_modules/moment/locale/vi.js","webpack:////home/ubuntu/node_modules/moment/locale/fa.js","webpack:////home/ubuntu/node_modules/moment/locale/dv.js","webpack:////home/ubuntu/node_modules/moment/locale/tzl.js","webpack:////home/ubuntu/node_modules/moment/locale/lv.js","webpack:////home/ubuntu/node_modules/moment/locale/en-gb.js","webpack:////home/ubuntu/node_modules/chart.js/dist/Chart.js","webpack:////home/ubuntu/node_modules/moment/locale/ky.js","webpack:////home/ubuntu/node_modules/moment/locale/hi.js","webpack:////home/ubuntu/node_modules/moment/locale/ne.js","webpack:////home/ubuntu/node_modules/moment/locale/ru.js","webpack:////home/ubuntu/node_modules/moment/locale/et.js","webpack:////home/ubuntu/node_modules/moment/locale/ro.js","webpack:////home/ubuntu/node_modules/moment/locale/kk.js","webpack:////home/ubuntu/node_modules/moment/locale/sq.js","webpack:////home/ubuntu/node_modules/moment/locale/el.js","webpack:////home/ubuntu/node_modules/moment/locale/oc-lnc.js","webpack:////home/ubuntu/node_modules/moment/locale/ko.js","webpack:////home/ubuntu/node_modules/moment/locale/es.js","webpack:////home/ubuntu/node_modules/moment/locale/sv.js","webpack:////home/ubuntu/node_modules/moment/locale/hu.js","webpack:////home/ubuntu/node_modules/moment/locale/uk.js","webpack:////home/ubuntu/node_modules/moment/locale/cs.js","webpack:////home/ubuntu/node_modules/moment/locale/cy.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-dz.js","webpack:////home/ubuntu/node_modules/moment/locale/nn.js","webpack:////home/ubuntu/node_modules/moment/locale/sw.js","webpack:////home/ubuntu/node_modules/moment/locale/br.js","webpack:////home/ubuntu/node_modules/moment/locale/si.js","webpack:////home/ubuntu/node_modules/moment/locale/gom-latn.js","webpack:////home/ubuntu/node_modules/moment/locale/az.js","webpack:////home/ubuntu/node_modules/moment/locale/da.js","webpack:////home/ubuntu/node_modules/moment/locale/en-ie.js","webpack:////home/ubuntu/node_modules/moment/locale/he.js","webpack:////home/ubuntu/node_modules/moment/locale/mr.js","webpack:////home/ubuntu/node_modules/moment/locale/de-at.js","webpack:////home/ubuntu/node_modules/moment/locale/es-mx.js","webpack:////home/ubuntu/node_modules/moment/locale/lo.js","webpack:////home/ubuntu/node_modules/moment/locale/mn.js","webpack:////home/ubuntu/node_modules/moment/locale/fi.js","webpack:////home/ubuntu/node_modules/moment/locale/it.js","webpack:////home/ubuntu/node_modules/moment/locale/tl-ph.js","webpack:////home/ubuntu/node_modules/moment/locale/en-in.js","webpack:////home/ubuntu/node_modules/moment/locale/fr.js","webpack:////home/ubuntu/node_modules/moment/locale/nb.js","webpack:////home/ubuntu/node_modules/moment/locale/pa-in.js","webpack:////home/ubuntu/node_modules/moment/locale/mk.js","webpack:////home/ubuntu/node_modules/moment/locale/ga.js","webpack:////home/ubuntu/node_modules/moment/locale/uz.js","webpack:///./src/components/UIComponents/Charts/BarChart.js","webpack:////home/ubuntu/node_modules/moment/locale/kn.js","webpack:///./src/components/UIComponents/Charts/utils.js","webpack:////home/ubuntu/node_modules/moment/locale/ar-sa.js","webpack:////home/ubuntu/node_modules/moment/locale/tr.js","webpack:////home/ubuntu/node_modules/moment/locale/bn.js","webpack:////home/ubuntu/node_modules/moment/locale/uz-latn.js","webpack:////home/ubuntu/node_modules/moment/locale/is.js","webpack:////home/ubuntu/node_modules/moment/locale/th.js","webpack:////home/ubuntu/node_modules/moment/locale/fy.js","webpack:////home/ubuntu/node_modules/moment/locale/nl-be.js","webpack:///./src/components/UIComponents/Charts/LineChart.js","webpack:////home/ubuntu/node_modules/moment/locale/fr-ch.js","webpack:////home/ubuntu/node_modules/moment/locale/my.js","webpack:////home/ubuntu/node_modules/moment/locale/en-au.js","webpack:////home/ubuntu/node_modules/moment/locale/fil.js","webpack:////home/ubuntu/node_modules/moment/locale/mt.js","webpack:////home/ubuntu/node_modules/moment/locale/ml.js","webpack:////home/ubuntu/node_modules/moment/locale/sl.js","webpack:////home/ubuntu/node_modules/moment/locale/yo.js","webpack:////home/ubuntu/node_modules/moment/locale/ja.js","webpack:////home/ubuntu/node_modules/moment/locale/ug-cn.js","webpack:////home/ubuntu/node_modules/moment/locale/me.js","webpack:////home/ubuntu/node_modules/moment/locale/af.js","webpack:////home/ubuntu/node_modules/moment/locale/sd.js","webpack:////home/ubuntu/node_modules/moment/locale/ur.js","webpack:///./src/components/UIComponents/Cards/ChartCard.vue?1236","webpack:///./src/components/UIComponents/Charts/plugins/plugin-chart-text.js","webpack:///./src/components/UIComponents/Charts/DoughnutChart.js","webpack:///src/components/UIComponents/Cards/ChartCard.vue","webpack:///./src/components/UIComponents/Cards/ChartCard.vue?4c9e","webpack:///./src/components/UIComponents/Cards/ChartCard.vue","webpack:////home/ubuntu/node_modules/moment/locale/bo.js","webpack:////home/ubuntu/node_modules/moment/locale/lb.js"],"names":["global","factory","this","moment","frCa","defineLocale","months","split","monthsShort","monthsParseExact","weekdays","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","number","period","numbersNouns","translateFuture","output","time","indexOf","slice","translatePast","translate","withoutSuffix","string","isFuture","numberNoun","numberAsNoun","hundred","Math","floor","ten","one","word","tlh","week","dow","doy","defaultOptions","legend","display","tooltips","enabled","scales","yAxes","ticks","gridLines","drawBorder","zeroLineColor","color","xAxes","barPercentage","name","extends","Pie","props","labels","type","Object","Array","description","datasets","data","String","extraOptions","title","methods","assignChartData","pointRadius","pointHoverRadius","backgroundColor","borderWidth","assignChartOptions","initialConfig","mounted","chartData","options","renderChart","arTn","tet","b","symbolMap","1","2","3","4","5","6","7","8","9","0","pluralForm","n","plurals","pluralize","u","f","str","replace","arLy","meridiemParse","isPM","input","meridiem","hour","minute","isLower","preparse","postformat","match","numberMap","ar","tzm","pt","day","w","ww","zhMo","l","ll","lll","llll","meridiemHour","hm","module","exports","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","get","i","cv","affix","exec","key","result","bs","plural","sk","monthsShortDot","monthsParse","monthsRegex","esDo","format","test","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","hours","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","isArray","prototype","toString","call","isObject","hasOwnProp","a","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","arrLen","push","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","firstTime","deprecationHandler","arg","args","argLen","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","mom","now","_calendar","zeroFill","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","func","localeData","removeFormattingTokens","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","lastIndex","defaultLongDateFormat","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","sort","isLeapYear","year","absFloor","ceil","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","x","modMonth","o","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","isLocaleNameSane","oldLocale","_abbr","require","getSetGlobalLocale","e","values","getLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","second","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","chunk","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","dur","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","translator","words","correctGrammaticalCase","wordKey","srCyrl","lastWeekDays","monthsNominative","monthsSubjective","pl","momentToFormat","suffixes","10","12","13","20","30","40","50","60","70","80","90","100","tg","standalone","jv","zhHk","translateSeconds","translateSingular","forms","special","lt","itCh","ptBr","webpackContext","req","id","webpackContextResolve","__webpack_require__","code","resolve","ca","esUs","msMy","processRelativeTime","deCh","mi","zhTw","enIl","enNz","tzmLatn","bnBd","gu","eo","km","arKw","zhCn","gl","gomDeva","hr","arMa","monthsShortWithDots","monthsShortWithoutDots","nl","de","bg","lastDigit","last2Digits","se","ku","ta","dataHandler","newData","oldData","chart","$data","_chart","newDatasetLabels","dataset","label","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","oldDatasetKeys","newDatasetKeys","deletionKeys","attribute","deletionKey","$emit","xLabels","yLabels","update","destroy","reactiveData","watch","reactiveProp","required","default","generateChart","chartId","chartType","render","createElement","style","styles","class","cssClasses","attrs","width","height","ref","Number","plugins","_plugins","addPlugin","plugin","generateLegend","$refs","canvas","getContext","beforeDestroy","Bar","Line","bm","enSg","xPseudo","hyAm","enCa","ka","$0","$1","$2","tk","te","mixins","fallBackColor","deep","handler","sr","num","relativeTimeWithPlural","be","fo","eu","gd","vi","fa","dv","tzl","relativeTimeWithSingular","relativeSeconds","lv","enGb","createCommonjsModule","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","r","g","delta","rdif","gdif","bdif","v","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","z","t1","t2","t3","sv","smin","lmin","hi","p","q","sl","vmin","wh","bl","ratio","y2","x2","z2","atan2","PI","sqrt","cos","sin","ansi","mult","rem","integer","substring","colorString","char","grayscale","hue","chroma","pure","mg","buildGraph","graph","models","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","wrapRounded","routes","routeModels","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","rgba","per","hexAlpha","scale","alpha","hsla","vals","hexDouble","reverseNames","Color","valid","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","target","error","spaces","maxes","getValues","space","capped","chans","sname","svalues","window","chartjsColor","helpers","noop","uid","isNullOrUndef","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","dst","src","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","ctx","clearRect","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","size","cornerRadius","rad","save","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","inputs","context","info","cacheable","exports$2","_factorize","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","overrideTextDirection","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","math","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","animation","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","method","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","computeFlexCategoryTraits","percent","end","mode","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","listItemSpan","list","document","setAttribute","appendChild","createTextNode","outerHTML","generateLabels","controller","text","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","params","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","platform_dom$1","__proto__","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","targetNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","core_plugins","_cacheId","register","unregister","idx","getAll","notify","hook","descriptor","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","parse","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","widestLabelSize","highestLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","arrayUnique","hash","getMin","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","ky","ne","ru","et","ro","kk","sq","monthsNominativeEl","monthsGenitiveEl","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","ocLnc","ko","isUpper","es","weekEndings","hu","weekdaysCaseReplace","nounCase","nominative","accusative","genitive","processHoursFunction","uk","cs","arDz","nn","sw","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","br","si","gomLatn","az","da","enIe","he","relativeTimeMr","mr","deAt","esMx","mn","numbersPast","numbersFuture","verbalNumber","fi","it","tlPh","enIn","fr","nb","paIn","mk","ga","uz","tooltipFillColor","tooltipFontFamily","tooltipFontSize","tooltipFontStyle","tooltipFontColor","tooltipTitleFontFamily","tooltipTitleFontSize","tooltipTitleFontStyle","tooltipTitleFontColor","tooltipYPadding","tooltipXPadding","tooltipCaretSize","tooltipCornerRadius","tooltipXOffset","reactiveChartMixin","gradientFill","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverBorderWidth","createLinearGradient","addColorStop","hexToRGB","kn","arSa","tr","bn","uzLatn","is","fy","nlBe","chartColor","gradientChartOptionsConfiguration","gradientStroke","frCh","my","enAu","fil","mt","ml","yo","ja","eraYearOrdinalRegex","ugCn","af","sd","ur","_vm","_h","$createElement","_c","_self","staticClass","$slots","_t","_e","chartComponent","tag","chartTitle","chartOptions","chartHeight","series","staticRenderFns","beforeDraw","centerConfig","txt","sidePadding","sidePaddingCalculated","stringWidth","elementWidth","widthRatio","newFontSize","elementHeight","fontSizeToUse","secondaryColor","pluginChartText","components","LineChart","BarChart","DoughNutChart","PieChart","footerText","headerTitle","chartComponents","Doughnut","computed","component","bo","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","firstDigit","lb"],"mappings":"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","file":"js/chunk-b01515ba.e261330a.js","sourcesContent":["//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\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 var frCa = 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 return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\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 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 var tlh = 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 return tlh;\n\n})));\n","import { Pie } from 'vue-chartjs'\n\nconst defaultOptions = {\n legend: {\n\n display: false\n },\n\n tooltips: {\n enabled: false\n },\n scales: {\n yAxes: [{\n\n ticks: {\n display: false\n },\n gridLines: {\n drawBorder: false,\n zeroLineColor: \"transparent\",\n color: 'rgba(255,255,255,0.05)'\n }\n\n }],\n xAxes: [{\n barPercentage: 1.6,\n gridLines: {\n drawBorder: false,\n color: 'rgba(255,255,255,0.1)',\n zeroLineColor: \"transparent\"\n },\n ticks: {\n display: false,\n }\n }]\n },\n\n};\n\nexport default {\n name: 'pie-chart',\n extends: Pie,\n props: {\n labels: {\n type: [Object, Array],\n description: 'Chart labels. This is overridden when `data` is provided'\n },\n datasets: {\n type: [Object, Array],\n description: 'Chart datasets. This is overridden when `data` is provided'\n },\n data: {\n type: [Object, Array],\n description: 'Chart.js chart data (overrides all default data)'\n },\n color: {\n type: String,\n description: 'Chart color. This is overridden when `data` is provided'\n },\n extraOptions: {\n type: Object,\n description: 'Chart.js options'\n },\n title: {\n type: String,\n description: 'Chart title'\n },\n },\n methods: {\n assignChartData() {\n return {\n labels: this.labels || [],\n datasets: this.datasets ? this.datasets : [{\n pointRadius: 0,\n pointHoverRadius: 0,\n backgroundColor: [\n '#e3e3e3',\n '#4acccd',\n '#fcc468'\n ],\n borderWidth: 0,\n data: this.data || []\n }]\n }\n },\n assignChartOptions(initialConfig) {\n let extraOptions = this.extraOptions || {};\n return {\n ...initialConfig,\n ...extraOptions\n };\n }\n },\n mounted() {\n this.chartData = this.assignChartData({});\n this.options = this.assignChartOptions(defaultOptions);\n this.renderChart(this.chartData, this.options);\n }\n}\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\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 var arTn = 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 return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\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 var tet = 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 return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\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 var symbolMap = {\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 = 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 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\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.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[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 return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\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 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 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 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\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[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[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 return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\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 var tzm = 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 return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\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 var pt = 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 return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\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 var zhMo = 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 return zhMo;\n\n})));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\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 var cv = 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 return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\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 function translate(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 var bs = 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,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\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: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\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 var months =\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(n) {\n return n > 1 && n < 5;\n }\n function translate(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(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(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(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(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(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(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\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,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\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 return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\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 var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\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 =\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 var esDo = 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;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\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,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 return esDo;\n\n})));\n","//! moment.js\n//! version : 2.29.4\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 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(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\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 }\n return m._isValid;\n }\n\n function createInvalid(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 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 function set(config) {\n var prop, i;\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(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\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 /(\\[[^\\[]*\\])|(\\\\)?([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 formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](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 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\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = 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 return this._longDateFormat[key];\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 relativeTime(number, withoutSuffix, string, isFuture) {\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 pastFuture(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 var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\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\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\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 isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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 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(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\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 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 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 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 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 function mod(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(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 // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\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\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(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.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 var dayOfMonth;\n\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 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\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(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 for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\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 for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\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('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 // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\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 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 weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\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 // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\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 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\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\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 // 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\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$1(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$1.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 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\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 // 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 // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\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);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\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 // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\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[name] = null; // null means not found\n }\n }\n return locales[name];\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 if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\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 tmpLocale = loadLocale(name);\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) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\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 // 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 currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\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);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(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 // 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 config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\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 weekOfYear(createLocal(), 1, 4).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 = weekOfYear(createLocal(), dow, doy);\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 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._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(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({ 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(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();\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();\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 res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\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$1() {\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 (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && 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 config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\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 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(\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$1;\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(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(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(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(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 = createAdder(1, 'add'),\n subtract = 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$1(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() {\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(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$1(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$1(\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$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(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$1(\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$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(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() {\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$2() {\n return isValid(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 eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\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 addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\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(),\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 // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\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 // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\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 // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\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 // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\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 // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\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 // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\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 = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.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;\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;\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() {\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$1(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$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(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 !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\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 // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\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\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(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 locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(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 = Object.assign({}, 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$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\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$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(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$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.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.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\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;\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;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\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 var translator = {\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.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.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = 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.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 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\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 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 = [\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(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = 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,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\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 return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\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 var suffixes = {\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 var tg = 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[number] || suffixes[a] || suffixes[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 return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\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 var jv = 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 return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\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 var zhHk = 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 return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\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 var units = {\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[key].split('_');\n }\n function translate(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 var lt = 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,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\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 return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\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 var itCh = 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 return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\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 var ptBr = 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: '[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: '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 return ptBr;\n\n})));\n","var map = {\n\t\"./af\": \"f826\",\n\t\"./af.js\": \"f826\",\n\t\"./ar\": \"0fa2\",\n\t\"./ar-dz\": \"8ec6\",\n\t\"./ar-dz.js\": \"8ec6\",\n\t\"./ar-kw\": \"36f4\",\n\t\"./ar-kw.js\": \"36f4\",\n\t\"./ar-ly\": \"0e86\",\n\t\"./ar-ly.js\": \"0e86\",\n\t\"./ar-ma\": \"3d3d\",\n\t\"./ar-ma.js\": \"3d3d\",\n\t\"./ar-sa\": \"cfe1\",\n\t\"./ar-sa.js\": \"cfe1\",\n\t\"./ar-tn\": \"0608\",\n\t\"./ar-tn.js\": \"0608\",\n\t\"./ar.js\": \"0fa2\",\n\t\"./az\": \"9cec\",\n\t\"./az.js\": \"9cec\",\n\t\"./be\": \"609d\",\n\t\"./be.js\": \"609d\",\n\t\"./bg\": \"3f4f\",\n\t\"./bg.js\": \"3f4f\",\n\t\"./bm\": \"43e9\",\n\t\"./bm.js\": \"43e9\",\n\t\"./bn\": \"d345\",\n\t\"./bn-bd\": \"3037\",\n\t\"./bn-bd.js\": \"3037\",\n\t\"./bn.js\": \"d345\",\n\t\"./bo\": \"fe43\",\n\t\"./bo.js\": \"fe43\",\n\t\"./br\": \"927d\",\n\t\"./br.js\": \"927d\",\n\t\"./bs\": \"1808\",\n\t\"./bs.js\": \"1808\",\n\t\"./ca\": \"2a24\",\n\t\"./ca.js\": \"2a24\",\n\t\"./cs\": \"8bb4\",\n\t\"./cs.js\": \"8bb4\",\n\t\"./cv\": \"1788\",\n\t\"./cv.js\": \"1788\",\n\t\"./cy\": \"8cb6\",\n\t\"./cy.js\": \"8cb6\",\n\t\"./da\": \"9fca\",\n\t\"./da.js\": \"9fca\",\n\t\"./de\": \"3f20\",\n\t\"./de-at\": \"a8f1\",\n\t\"./de-at.js\": \"a8f1\",\n\t\"./de-ch\": \"2b68\",\n\t\"./de-ch.js\": \"2b68\",\n\t\"./de.js\": \"3f20\",\n\t\"./dv\": \"6a7c\",\n\t\"./dv.js\": \"6a7c\",\n\t\"./el\": \"7f03\",\n\t\"./el.js\": \"7f03\",\n\t\"./en-au\": \"e33b\",\n\t\"./en-au.js\": \"e33b\",\n\t\"./en-ca\": \"563d\",\n\t\"./en-ca.js\": \"563d\",\n\t\"./en-gb\": \"6e59\",\n\t\"./en-gb.js\": \"6e59\",\n\t\"./en-ie\": \"a02d\",\n\t\"./en-ie.js\": \"a02d\",\n\t\"./en-il\": \"2dd2\",\n\t\"./en-il.js\": \"2dd2\",\n\t\"./en-in\": \"b674\",\n\t\"./en-in.js\": \"b674\",\n\t\"./en-nz\": \"2e16\",\n\t\"./en-nz.js\": \"2e16\",\n\t\"./en-sg\": \"49e7\",\n\t\"./en-sg.js\": \"49e7\",\n\t\"./eo\": \"3645\",\n\t\"./eo.js\": \"3645\",\n\t\"./es\": \"8669\",\n\t\"./es-do\": \"1ef1\",\n\t\"./es-do.js\": \"1ef1\",\n\t\"./es-mx\": \"aa4f\",\n\t\"./es-mx.js\": \"aa4f\",\n\t\"./es-us\": \"2adb\",\n\t\"./es-us.js\": \"2adb\",\n\t\"./es.js\": \"8669\",\n\t\"./et\": \"7672\",\n\t\"./et.js\": \"7672\",\n\t\"./eu\": \"666c\",\n\t\"./eu.js\": \"666c\",\n\t\"./fa\": \"691e\",\n\t\"./fa.js\": \"691e\",\n\t\"./fi\": \"b486\",\n\t\"./fi.js\": \"b486\",\n\t\"./fil\": \"e425\",\n\t\"./fil.js\": \"e425\",\n\t\"./fo\": \"60e4\",\n\t\"./fo.js\": \"60e4\",\n\t\"./fr\": \"bc2c\",\n\t\"./fr-ca\": \"028a\",\n\t\"./fr-ca.js\": \"028a\",\n\t\"./fr-ch\": \"de9b\",\n\t\"./fr-ch.js\": \"de9b\",\n\t\"./fr.js\": \"bc2c\",\n\t\"./fy\": \"de08\",\n\t\"./fy.js\": \"de08\",\n\t\"./ga\": \"c134\",\n\t\"./ga.js\": \"c134\",\n\t\"./gd\": \"680a\",\n\t\"./gd.js\": \"680a\",\n\t\"./gl\": \"3a5c\",\n\t\"./gl.js\": \"3a5c\",\n\t\"./gom-deva\": \"3ab2\",\n\t\"./gom-deva.js\": \"3ab2\",\n\t\"./gom-latn\": \"9bbd\",\n\t\"./gom-latn.js\": \"9bbd\",\n\t\"./gu\": \"3123\",\n\t\"./gu.js\": \"3123\",\n\t\"./he\": \"a3bb\",\n\t\"./he.js\": \"a3bb\",\n\t\"./hi\": \"74d5\",\n\t\"./hi.js\": \"74d5\",\n\t\"./hr\": \"3d1a\",\n\t\"./hr.js\": \"3d1a\",\n\t\"./hu\": \"8930\",\n\t\"./hu.js\": \"8930\",\n\t\"./hy-am\": \"5368\",\n\t\"./hy-am.js\": \"5368\",\n\t\"./id\": \"4d1d\",\n\t\"./id.js\": \"4d1d\",\n\t\"./is\": \"d8c2\",\n\t\"./is.js\": \"d8c2\",\n\t\"./it\": \"b571\",\n\t\"./it-ch\": \"26a2\",\n\t\"./it-ch.js\": \"26a2\",\n\t\"./it.js\": \"b571\",\n\t\"./ja\": \"f409\",\n\t\"./ja.js\": \"f409\",\n\t\"./jv\": \"24ca\",\n\t\"./jv.js\": \"24ca\",\n\t\"./ka\": \"57b4\",\n\t\"./ka.js\": \"57b4\",\n\t\"./kk\": \"7af1\",\n\t\"./kk.js\": \"7af1\",\n\t\"./km\": \"368b\",\n\t\"./km.js\": \"368b\",\n\t\"./kn\": \"c931\",\n\t\"./kn.js\": \"c931\",\n\t\"./ko\": \"8472\",\n\t\"./ko.js\": \"8472\",\n\t\"./ku\": \"41c3\",\n\t\"./ku.js\": \"41c3\",\n\t\"./ky\": \"7229\",\n\t\"./ky.js\": \"7229\",\n\t\"./lb\": \"febd\",\n\t\"./lb.js\": \"febd\",\n\t\"./lo\": \"b36b\",\n\t\"./lo.js\": \"b36b\",\n\t\"./lt\": \"2654\",\n\t\"./lt.js\": \"2654\",\n\t\"./lv\": \"6e31\",\n\t\"./lv.js\": \"6e31\",\n\t\"./me\": \"f72d\",\n\t\"./me.js\": \"f72d\",\n\t\"./mi\": \"2bcd\",\n\t\"./mi.js\": \"2bcd\",\n\t\"./mk\": \"c0de\",\n\t\"./mk.js\": \"c0de\",\n\t\"./ml\": \"e75d\",\n\t\"./ml.js\": \"e75d\",\n\t\"./mn\": \"b37a\",\n\t\"./mn.js\": \"b37a\",\n\t\"./mr\": \"a76b\",\n\t\"./mr.js\": \"a76b\",\n\t\"./ms\": \"2bf0\",\n\t\"./ms-my\": \"2b02\",\n\t\"./ms-my.js\": \"2b02\",\n\t\"./ms.js\": \"2bf0\",\n\t\"./mt\": \"e717\",\n\t\"./mt.js\": \"e717\",\n\t\"./my\": \"e2e2\",\n\t\"./my.js\": \"e2e2\",\n\t\"./nb\": \"bdfc\",\n\t\"./nb.js\": \"bdfc\",\n\t\"./ne\": \"75c0\",\n\t\"./ne.js\": \"75c0\",\n\t\"./nl\": \"3e8e\",\n\t\"./nl-be\": \"de3b\",\n\t\"./nl-be.js\": \"de3b\",\n\t\"./nl.js\": \"3e8e\",\n\t\"./nn\": \"90a3\",\n\t\"./nn.js\": \"90a3\",\n\t\"./oc-lnc\": \"8195\",\n\t\"./oc-lnc.js\": \"8195\",\n\t\"./pa-in\": \"bf7a\",\n\t\"./pa-in.js\": \"bf7a\",\n\t\"./pl\": \"210f\",\n\t\"./pl.js\": \"210f\",\n\t\"./pt\": \"12e3\",\n\t\"./pt-br\": \"294f\",\n\t\"./pt-br.js\": \"294f\",\n\t\"./pt.js\": \"12e3\",\n\t\"./ro\": \"7a04\",\n\t\"./ro.js\": \"7a04\",\n\t\"./ru\": \"75cb\",\n\t\"./ru.js\": \"75cb\",\n\t\"./sd\": \"f957\",\n\t\"./sd.js\": \"f957\",\n\t\"./se\": \"4169\",\n\t\"./se.js\": \"4169\",\n\t\"./si\": \"951b9\",\n\t\"./si.js\": \"951b9\",\n\t\"./sk\": \"1c1d\",\n\t\"./sk.js\": \"1c1d\",\n\t\"./sl\": \"eb2c\",\n\t\"./sl.js\": \"eb2c\",\n\t\"./sq\": \"7c7d\",\n\t\"./sq.js\": \"7c7d\",\n\t\"./sr\": \"5f14\",\n\t\"./sr-cyrl\": \"20a0\",\n\t\"./sr-cyrl.js\": \"20a0\",\n\t\"./sr.js\": \"5f14\",\n\t\"./ss\": \"3a89\",\n\t\"./ss.js\": \"3a89\",\n\t\"./sv\": \"87ac\",\n\t\"./sv.js\": \"87ac\",\n\t\"./sw\": \"91c3\",\n\t\"./sw.js\": \"91c3\",\n\t\"./ta\": \"41cd\",\n\t\"./ta.js\": \"41cd\",\n\t\"./te\": \"5a49\",\n\t\"./te.js\": \"5a49\",\n\t\"./tet\": \"0e56\",\n\t\"./tet.js\": \"0e56\",\n\t\"./tg\": \"2495\",\n\t\"./tg.js\": \"2495\",\n\t\"./th\": \"db96\",\n\t\"./th.js\": \"db96\",\n\t\"./tk\": \"593b\",\n\t\"./tk.js\": \"593b\",\n\t\"./tl-ph\": \"b593\",\n\t\"./tl-ph.js\": \"b593\",\n\t\"./tlh\": \"04f0\",\n\t\"./tlh.js\": \"04f0\",\n\t\"./tr\": \"d11d\",\n\t\"./tr.js\": \"d11d\",\n\t\"./tzl\": \"6da8\",\n\t\"./tzl.js\": \"6da8\",\n\t\"./tzm\": \"11af\",\n\t\"./tzm-latn\": \"2eac\",\n\t\"./tzm-latn.js\": \"2eac\",\n\t\"./tzm.js\": \"11af\",\n\t\"./ug-cn\": \"f551\",\n\t\"./ug-cn.js\": \"f551\",\n\t\"./uk\": \"89a5\",\n\t\"./uk.js\": \"89a5\",\n\t\"./ur\": \"faa7\",\n\t\"./ur.js\": \"faa7\",\n\t\"./uz\": \"c23b\",\n\t\"./uz-latn\": \"d399\",\n\t\"./uz-latn.js\": \"d399\",\n\t\"./uz.js\": \"c23b\",\n\t\"./vi\": \"6811\",\n\t\"./vi.js\": \"6811\",\n\t\"./x-pseudo\": \"52a9\",\n\t\"./x-pseudo.js\": \"52a9\",\n\t\"./yo\": \"f28c\",\n\t\"./yo.js\": \"f28c\",\n\t\"./zh-cn\": \"39cf\",\n\t\"./zh-cn.js\": \"39cf\",\n\t\"./zh-hk\": \"25ad\",\n\t\"./zh-hk.js\": \"25ad\",\n\t\"./zh-mo\": \"1689\",\n\t\"./zh-mo.js\": \"1689\",\n\t\"./zh-tw\": \"2dba\",\n\t\"./zh-tw.js\": \"2dba\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"2981\";","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\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 var ca = 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 return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\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 var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\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 =\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 var esUs = 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;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\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,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\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 var msMy = 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 return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\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 function processRelativeTime(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 var deCh = 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 monthsParseExact: true,\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,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\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 return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\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 var mi = 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 return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\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 var ms = 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 return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\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 var zhTw = 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 return zhTw;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\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 var enIl = 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 return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\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 var enNz = 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 return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\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 var tzmLatn = 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 return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\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 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 var bnBd = 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[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[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 return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\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 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 var gu = 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[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[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 return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\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 var eo = 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 return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\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 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 var km = 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[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[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 return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\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 var arKw = 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 return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\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 var zhCn = 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 return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\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 var gl = 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 return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\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 var ss = 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 return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\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 function processRelativeTime(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 var gomDeva = 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,\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: 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 return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\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 function translate(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 var hr = 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,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\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: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\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 var arMa = 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 return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\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 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 = [\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 =\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 var nl = 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,\n monthsShortRegex: monthsRegex,\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,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\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 function processRelativeTime(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 var de = 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 monthsParseExact: true,\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,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\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 return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\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 var bg = 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 return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\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 var se = 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 return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\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 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 months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\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[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[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 return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\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 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 var ta = 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 return ta;\n\n})));\n","function dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n if (!this.$refs.canvas) throw new Error('Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components');\n this.$data._chart = new Chart(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n};","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\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 var bm = 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 return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\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 var enSg = 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 return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\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 var id = 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_Agt_Sep_Okt_Nov_Des'.split('_'),\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 return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\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 var xPseudo = 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 return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\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 var hyAm = 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 return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\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 var enCa = 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 return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\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 var ka = 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 return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\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 var suffixes = {\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 var tk = 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[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 return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\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 var te = 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 return te;\n\n})));\n","import { Line, mixins } from 'vue-chartjs'\n\nexport default {\n mixins: [mixins.reactiveData],\n data() {\n return {\n fallBackColor: '#f96332',\n options: {}\n }\n },\n watch: {\n data: {\n deep: true,\n handler(data) {\n this.chartData = this.assignChartData({ data });\n }\n },\n datasets(datasets) {\n //console.log('Dataset change')\n this.chartData = this.assignChartData({ datasets });\n }\n }\n\n}\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\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 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 var sr = 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 return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\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 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\n var be = 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,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\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 return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\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 var fo = 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 return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\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 var eu = 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 return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\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 var months = [\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 = [\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 var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\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 return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\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 var vi = 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 return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\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 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 var fa = 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[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[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 return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\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 var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\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 return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\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 // 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 var tzl = 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 return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\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 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(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 var lv = 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,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\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 return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\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 var enGb = 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 return enGb;\n\n})));\n","/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace. all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge({}, [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked | meta.stack\n\t\t\t// | found | not found | undefined\n\t\t\t// false | x | x | x\n\t\t\t// true | | x |\n\t\t\t// undefined | | x | x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\treturn layout.horizontal ? newWidth !== chartArea.w : newHeight !== chartArea.h;\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\n * DOM element rendering detection\\n * https://davidwalsh.name/detect-node-insertion\\n */\\n@keyframes chartjs-render-animation {\\n\\tfrom { opacity: 0.99; }\\n\\tto { opacity: 1; }\\n}\\n\\n.chartjs-render-monitor {\\n\\tanimation: chartjs-render-animation 0.001s;\\n}\\n\\n/*\\n * DOM element resizing detection\\n * https://github.com/marcj/css-element-queries\\n */\\n.chartjs-size-monitor,\\n.chartjs-size-monitor-expand,\\n.chartjs-size-monitor-shrink {\\n\\tposition: absolute;\\n\\tdirection: ltr;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\toverflow: hidden;\\n\\tpointer-events: none;\\n\\tvisibility: hidden;\\n\\tz-index: -1;\\n}\\n\\n.chartjs-size-monitor-expand > div {\\n\\tposition: absolute;\\n\\twidth: 1000000px;\\n\\theight: 1000000px;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.chartjs-size-monitor-shrink > div {\\n\\tposition: absolute;\\n\\twidth: 200%;\\n\\theight: 200%;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the \n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartCard.vue?vue&type=template&id=26066e65&\"\nimport script from \"./ChartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\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 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 var bo = 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[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[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 return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\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 function processRelativeTime(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 var lb = 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,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\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 return lb;\n\n})));\n"],"sourceRoot":""}