{"version":3,"file":"react-intl.js","sources":["../src/en.js","../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-relativeformat/src/main.js","../src/locale-data-registry.js","../src/types.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/invariant/invariant.js","../src/utils.js","../src/inject.js","../src/define-messages.js","../src/plural.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/format.js","../src/components/provider.js","../src/components/date.js","../src/components/time.js","../src/components/relative.js","../src/components/number.js","../src/components/plural.js","../src/components/message.js","../src/components/html-message.js","../src/react-intl.js"],"sourcesContent":["// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function(n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value && typeof value !== 'number') {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n try {\n return messageFormat._format(pattern, values);\n } catch (e) {\n if (e.variableId) {\n throw new Error(\n 'The intl string context variable \\'' + e.variableId + '\\'' +\n ' was not provided to the string \\'' + message + '\\''\n );\n } else {\n throw e;\n }\n }\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value, err;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n err = new Error('A value must be provided for: ' + id);\n err.variableId = id;\n throw err;\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond : millisecond,\n second : second,\n 'second-short' : second,\n minute : minute,\n 'minute-short' : minute,\n hour : hour,\n 'hour-short' : hour,\n day : day,\n 'day-short' : day,\n week : week,\n 'week-short' : week,\n month : month,\n 'month-short' : month,\n year : year,\n 'year-short' : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = [\n 'second', 'second-short',\n 'minute', 'minute-short',\n 'hour', 'hour-short',\n 'day', 'day-short',\n 'month', 'month-short',\n 'year', 'year-short'\n];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, 'second-short': 45, // seconds to minute\n minute: 45, 'minute-short': 45, // minutes to hour\n hour : 22, 'hour-short': 22, // hours to day\n day : 26, 'day-short': 26, // days to month\n month : 11, 'month-short': 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n var fields = FIELDS.filter(function(field) {\n return field.indexOf('-short') < 1;\n });\n\n for (i = 0, l = fields.length; i < l; i += 1) {\n units = fields[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(localeData => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport PropTypes from 'prop-types';\n\nconst {\n bool,\n number,\n string,\n func,\n object,\n oneOf,\n shape,\n any,\n oneOfType,\n} = PropTypes;\nconst localeMatcher = oneOf(['best fit', 'lookup']);\nconst narrowShortLong = oneOf(['narrow', 'short', 'long']);\nconst numeric2digit = oneOf(['numeric', '2-digit']);\nconst funcReq = func.isRequired;\n\nexport const intlConfigPropTypes = {\n locale: string,\n timeZone: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object,\n\n onError: func,\n};\n\nexport const intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq,\n};\n\nexport const intlShape = shape({\n ...intlConfigPropTypes,\n ...intlFormatPropTypes,\n formatters: object,\n now: funcReq,\n});\n\nexport const messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string,\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long']),\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number,\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf([\n 'second',\n 'minute',\n 'hour',\n 'day',\n 'month',\n 'year',\n 'second-short',\n 'minute-short',\n 'hour-short',\n 'day-short',\n 'month-short',\n 'year-short',\n ]),\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal']),\n};\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nimport invariant from 'invariant';\nimport {intlConfigPropTypes} from './types';\n\nconst intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nconst ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": ''',\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n\n return filtered;\n }, {});\n}\n\nexport function invariantIntlContext({intl} = {}) {\n invariant(\n intl,\n '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.'\n );\n}\n\nexport function shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false;\n }\n\n let keysA = Object.keys(objA);\n let keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n let bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (let i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function shouldIntlComponentUpdate(\n {props, state, context = {}},\n nextProps,\n nextState,\n nextContext = {}\n) {\n const {intl = {}} = context;\n const {intl: nextIntl = {}} = nextContext;\n\n return (\n !shallowEquals(nextProps, props) ||\n !shallowEquals(nextState, state) ||\n !(\n nextIntl === intl ||\n shallowEquals(\n filterProps(nextIntl, intlConfigPropNames),\n filterProps(intl, intlConfigPropNames)\n )\n )\n );\n}\n\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\n\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nimport React, {Component} from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport {intlShape} from './types';\nimport {invariantIntlContext} from './utils';\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n\nexport default function injectIntl(WrappedComponent, options = {}) {\n const {intlPropName = 'intl', withRef = false} = options;\n\n class InjectIntl extends Component {\n static displayName = `InjectIntl(${getDisplayName(WrappedComponent)})`;\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static WrappedComponent = WrappedComponent;\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n getWrappedInstance() {\n invariant(\n withRef,\n '[React Intl] To access the wrapped instance, ' +\n 'the `{withRef: true}` option must be set when calling: ' +\n '`injectIntl()`'\n );\n\n return this._wrappedInstance;\n }\n\n render() {\n return (\n this._wrappedInstance = ref) : null}\n />\n );\n }\n }\n\n return hoistNonReactStatics(InjectIntl, WrappedComponent);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nexport default function defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = value => pluralFn(value, useOrdinal);\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport invariant from 'invariant';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport {isValidElement} from 'react';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes,\n} from './types';\n\nimport {createError, defaultErrorHandler, escape, filterProps} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12, // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour: thresholds.hour,\n day: thresholds.day,\n month: thresholds.month,\n 'second-short': thresholds['second-short'],\n 'minute-short': thresholds['minute-short'],\n 'hour-short': thresholds['hour-short'],\n 'day-short': thresholds['day-short'],\n 'month-short': thresholds['month-short'],\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name, onError) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n onError(createError(`No ${type} format named: ${name}`));\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats, timeZone} = config;\n const {format} = options;\n\n let onError = config.onError || defaultErrorHandler;\n let date = new Date(value);\n let defaults = {\n ...(timeZone && {timeZone}),\n ...(format && getNamedFormat(formats, 'date', format, onError)),\n };\n let filteredOptions = filterProps(\n options,\n DATE_TIME_FORMAT_OPTIONS,\n defaults\n );\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n onError(createError('Error formatting date.', e));\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats, timeZone} = config;\n const {format} = options;\n\n let onError = config.onError || defaultErrorHandler;\n let date = new Date(value);\n let defaults = {\n ...(timeZone && {timeZone}),\n ...(format && getNamedFormat(formats, 'time', format, onError)),\n };\n let filteredOptions = filterProps(\n options,\n DATE_TIME_FORMAT_OPTIONS,\n defaults\n );\n\n if (\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second\n ) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = {...filteredOptions, hour: 'numeric', minute: 'numeric'};\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n onError(createError('Error formatting time.', e));\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let onError = config.onError || defaultErrorHandler;\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format, onError);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = {...IntlRelativeFormat.thresholds};\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now(),\n });\n } catch (e) {\n onError(createError('Error formatting relative time.', e));\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let onError = config.onError || defaultErrorHandler;\n let defaults = format && getNamedFormat(formats, 'number', format, onError);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n onError(createError('Error formatting number.', e));\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n let onError = config.onError || defaultErrorHandler;\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n\n return 'other';\n}\n\nexport function formatMessage(\n config,\n state,\n messageDescriptor = {},\n values = {}\n) {\n const {locale, formats, messages, defaultLocale, defaultFormats} = config;\n\n const {id, defaultMessage} = messageDescriptor;\n\n // Produce a better error if the user calls `intl.formatMessage(element)`\n if (process.env.NODE_ENV !== 'production') {\n invariant(!isValidElement(config), '[React Intl] Don\\'t pass React elements to ' +\n 'formatMessage(), pass `.props`.');\n }\n\n // `id` is a required field of a Message Descriptor.\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n let formattedMessage;\n let onError = config.onError || defaultErrorHandler;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n onError(\n createError(\n `Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''),\n e\n )\n );\n }\n } else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (\n !defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())\n ) {\n onError(\n createError(\n `Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n )\n );\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage,\n defaultLocale,\n defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n onError(\n createError(`Error formatting the default message for: \"${id}\"`, e)\n );\n }\n }\n\n if (!formattedMessage) {\n onError(\n createError(\n `Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage\n ? 'source'\n : 'id'} as fallback.`\n )\n );\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(\n config,\n state,\n messageDescriptor,\n rawValues = {}\n) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport {Component, Children} from 'react';\nimport PropTypes from 'prop-types';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from '../plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport invariant from 'invariant';\nimport {\n createError,\n defaultErrorHandler,\n shouldIntlComponentUpdate,\n filterProps,\n} from '../utils';\nimport {intlConfigPropTypes, intlFormatPropTypes, intlShape} from '../types';\nimport * as format from '../format';\nimport {hasLocaleData} from '../locale-data-registry';\n\nconst intlConfigPropNames = Object.keys(intlConfigPropTypes);\nconst intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an ancestor.\nconst defaultProps = {\n formats: {},\n messages: {},\n timeZone: null,\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {},\n\n onError: defaultErrorHandler,\n};\n\nexport default class IntlProvider extends Component {\n static displayName = 'IntlProvider';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static childContextTypes = {\n intl: intlShape.isRequired,\n };\n\n static propTypes = {\n ...intlConfigPropTypes,\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any,\n };\n\n constructor(props, context = {}) {\n super(props, context);\n\n invariant(\n typeof Intl !== 'undefined',\n '[React Intl] The `Intl` APIs must be available in the runtime, ' +\n 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' +\n 'See: http://formatjs.io/guides/runtime-environments/'\n );\n\n const {intl: intlContext} = context;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n let initialNow;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // ``, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n const {\n formatters = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat),\n },\n } =\n intlContext || {};\n\n this.state = {\n ...formatters,\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: () => {\n return this._didDisplay ? Date.now() : initialNow;\n },\n };\n }\n\n getConfig() {\n const {intl: intlContext} = this.context;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an exists in the ancestry.\n let config = filterProps(this.props, intlConfigPropNames, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (let propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n const {locale, defaultLocale, defaultFormats, onError} = config;\n\n onError(\n createError(\n `Missing locale data for locale: \"${locale}\". ` +\n `Using default locale: \"${defaultLocale}\" as fallback.`\n )\n );\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n config = {\n ...config,\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages,\n };\n }\n\n return config;\n }\n\n getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce((boundFormatFns, name) => {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n\n getChildContext() {\n const config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n const boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n const {now, ...formatters} = this.state;\n\n return {\n intl: {\n ...config,\n ...boundFormatFns,\n formatters,\n now,\n },\n };\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n componentDidMount() {\n this._didDisplay = true;\n }\n\n render() {\n return Children.only(this.props.children);\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, dateTimeFormatPropTypes} from '../types';\nimport {invariantIntlContext, shouldIntlComponentUpdate} from '../utils';\n\nexport default class FormattedDate extends Component {\n static displayName = 'FormattedDate';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...dateTimeFormatPropTypes,\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func,\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n render() {\n const {formatDate, textComponent: Text} = this.context.intl;\n const {value, children} = this.props;\n\n let formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return {formattedDate};\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, dateTimeFormatPropTypes} from '../types';\nimport {invariantIntlContext, shouldIntlComponentUpdate} from '../utils';\n\nexport default class FormattedTime extends Component {\n static displayName = 'FormattedTime';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...dateTimeFormatPropTypes,\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func,\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n render() {\n const {formatTime, textComponent: Text} = this.context.intl;\n const {value, children} = this.props;\n\n let formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return {formattedTime};\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, relativeFormatPropTypes} from '../types';\nimport {invariantIntlContext, shouldIntlComponentUpdate} from '../utils';\n\nconst SECOND = 1000;\nconst MINUTE = 1000 * 60;\nconst HOUR = 1000 * 60 * 60;\nconst DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nconst MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n let absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n let aTime = new Date(a).getTime();\n let bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nexport default class FormattedRelative extends Component {\n static displayName = 'FormattedRelative';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...relativeFormatPropTypes,\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n updateInterval: PropTypes.number,\n initialNow: PropTypes.any,\n children: PropTypes.func,\n };\n\n static defaultProps = {\n updateInterval: 1000 * 10,\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n\n let now = isFinite(props.initialNow)\n ? Number(props.initialNow)\n : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n this.state = {now};\n }\n\n scheduleNextUpdate(props, state) {\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n const {value, units, updateInterval} = props;\n const time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n const delta = time - state.now;\n const unitDelay = getUnitDelay(units || selectUnits(delta));\n const unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n const delay =\n delta < 0\n ? Math.max(updateInterval, unitDelay - unitRemainder)\n : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(() => {\n this.setState({now: this.context.intl.now()});\n }, delay);\n }\n\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n\n componentWillReceiveProps({value: nextValue}) {\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({now: this.context.intl.now()});\n }\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n\n componentWillUnmount() {\n clearTimeout(this._timer);\n }\n\n render() {\n const {formatRelative, textComponent: Text} = this.context.intl;\n const {value, children} = this.props;\n\n let formattedRelative = formatRelative(value, {\n ...this.props,\n ...this.state,\n });\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return {formattedRelative};\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, numberFormatPropTypes} from '../types';\nimport {invariantIntlContext, shouldIntlComponentUpdate} from '../utils';\n\nexport default class FormattedNumber extends Component {\n static displayName = 'FormattedNumber';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...numberFormatPropTypes,\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func,\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n render() {\n const {formatNumber, textComponent: Text} = this.context.intl;\n const {value, children} = this.props;\n\n let formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return {formattedNumber};\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, pluralFormatPropTypes} from '../types';\nimport {invariantIntlContext, shouldIntlComponentUpdate} from '../utils';\n\nexport default class FormattedPlural extends Component {\n static displayName = 'FormattedPlural';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...pluralFormatPropTypes,\n value: PropTypes.any.isRequired,\n\n other: PropTypes.node.isRequired,\n zero: PropTypes.node,\n one: PropTypes.node,\n two: PropTypes.node,\n few: PropTypes.node,\n many: PropTypes.node,\n\n children: PropTypes.func,\n };\n\n static defaultProps = {\n style: 'cardinal',\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n shouldComponentUpdate(...next) {\n return shouldIntlComponentUpdate(this, ...next);\n }\n\n render() {\n const {formatPlural, textComponent: Text} = this.context.intl;\n const {value, other, children} = this.props;\n\n let pluralCategory = formatPlural(value, this.props);\n let formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return {formattedPlural};\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport {Component, createElement, isValidElement} from 'react';\nimport PropTypes from 'prop-types';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport {intlShape, messageDescriptorPropTypes} from '../types';\nimport {\n invariantIntlContext,\n shallowEquals,\n shouldIntlComponentUpdate,\n} from '../utils';\nimport {formatMessage as baseFormatMessage} from '../format';\n\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n '[React Intl] Could not find required `intl` object. needs to exist in the component ancestry. Using default message as fallback.'\n );\n }\n return baseFormatMessage(\n {},\n {getMessageFormat: memoizeIntlConstructor(IntlMessageFormat)},\n descriptor,\n values\n );\n};\n\nexport default class FormattedMessage extends Component {\n static displayName = 'FormattedMessage';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...messageDescriptorPropTypes,\n values: PropTypes.object,\n tagName: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n children: PropTypes.func,\n };\n\n static defaultProps = {\n values: {},\n };\n\n constructor(props, context) {\n super(props, context);\n if (!props.defaultMessage) {\n invariantIntlContext(context);\n }\n }\n\n shouldComponentUpdate(nextProps, ...next) {\n const {values} = this.props;\n const {values: nextValues} = nextProps;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n let nextPropsToCheck = {\n ...nextProps,\n values,\n };\n\n return shouldIntlComponentUpdate(this, nextPropsToCheck, ...next);\n }\n\n render() {\n const {formatMessage = defaultFormatMessage, textComponent: Text = 'span'} =\n this.context.intl || {};\n\n const {\n id,\n description,\n defaultMessage,\n values,\n tagName: Component = Text,\n children,\n } = this.props;\n\n let tokenDelimiter;\n let tokenizedValues;\n let elements;\n\n let hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n let uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n let generateToken = (() => {\n let counter = 0;\n return () => `ELEMENT-${uid}-${(counter += 1)}`;\n })();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = `@__${uid}__@`;\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(name => {\n let value = values[name];\n\n if (isValidElement(value)) {\n let token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n let descriptor = {id, description, defaultMessage};\n let formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n let nodes;\n\n let hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage\n .split(tokenDelimiter)\n .filter(part => !!part)\n .map(part => elements[part] || part);\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children(...nodes);\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return createElement(Component, null, ...nodes);\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {intlShape, messageDescriptorPropTypes} from '../types';\nimport {\n invariantIntlContext,\n shallowEquals,\n shouldIntlComponentUpdate,\n} from '../utils';\n\nexport default class FormattedHTMLMessage extends Component {\n static displayName = 'FormattedHTMLMessage';\n\n static contextTypes = {\n intl: intlShape,\n };\n\n static propTypes = {\n ...messageDescriptorPropTypes,\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func,\n };\n\n static defaultProps = {\n values: {},\n };\n\n constructor(props, context) {\n super(props, context);\n invariantIntlContext(context);\n }\n\n shouldComponentUpdate(nextProps, ...next) {\n const {values} = this.props;\n const {values: nextValues} = nextProps;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n let nextPropsToCheck = {\n ...nextProps,\n values,\n };\n\n return shouldIntlComponentUpdate(this, nextPropsToCheck, ...next);\n }\n\n render() {\n const {formatHTMLMessage, textComponent: Text} = this.context.intl;\n\n const {\n id,\n description,\n defaultMessage,\n values: rawValues,\n tagName: Component = Text,\n children,\n } = this.props;\n\n let descriptor = {id, description, defaultMessage};\n let formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = {__html: formattedHTMLMessage};\n return ;\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport defaultLocaleData from './en';\nimport {addLocaleData} from './locale-data-registry';\n\naddLocaleData(defaultLocaleData);\n\nexport {addLocaleData};\nexport {intlShape} from './types';\nexport {default as injectIntl} from './inject';\nexport {default as defineMessages} from './define-messages';\n\nexport {default as IntlProvider} from './components/provider';\nexport {default as FormattedDate} from './components/date';\nexport {default as FormattedTime} from './components/time';\nexport {default as FormattedRelative} from './components/relative';\nexport {default as FormattedNumber} from './components/number';\nexport {default as FormattedPlural} from './components/plural';\nexport {default as FormattedMessage} from './components/message';\nexport {default as FormattedHTMLMessage} from './components/html-message';\n"],"names":["n","ord","s","String","split","v0","t0","Number","n10","slice","n100","hop","Object","prototype","hasOwnProperty","extend","obj","sources","Array","call","arguments","i","len","source","key","length","realDefineProp","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","type","Error","elements","pattern","element","push","compileMessageText","compileArgument","test","Intl","NumberFormat","PluralOffsetString","id","format","offset","replace","StringFormat","options","number","style","date","DateTimeFormat","time","compileOptions","PluralFormat","ordinal","SelectFormat","optionsHash","option","selector","pop","useOrdinal","getOption","other","numberFormat","string","peg$subclass","child","parent","ctor","constructor","SyntaxError","message","expected","found","line","column","parse","input","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$reportedPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","peg$computePosDetails","pos","advance","details","startPos","endPos","p","ch","charAt","peg$fail","peg$buildException","cleanupExpected","sort","a","b","splice","buildMessage","stringEscape","hex","charCodeAt","toString","toUpperCase","expectedDescs","expectedDesc","foundDesc","posDetails","s0","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","variableId","data","locale","__localeData__","toLowerCase","parser","undefined","resolvedOptions","compiler","localeData","pluralRuleFunction","parentLocale","result","part","err","defaults","mergedFormats","mergedType","concat","defaultLocale","localeParts","IntlMessageFormat","__addLocaleData","round","Math","daysToYears","days","from","to","millisecond","second","minute","hour","day","week","rawYears","month","year","arrIndexOf","indexOf","search","fromIndex","arr","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","field","_fields","relativeTime","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","relative","fields","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","filter","thresholds","IntlRelativeFormat","addLocaleData","forEach","hasLocaleData","hasIMFAndIRFLocaleData","normalizedLocale","bool","PropTypes","func","object","oneOf","shape","any","oneOfType","localeMatcher","narrowShortLong","numeric2digit","funcReq","isRequired","intlConfigPropTypes","intlFormatPropTypes","intlShape","messageDescriptorPropTypes","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","REACT_STATICS","KNOWN_STATICS","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","descriptor","module","NODE_ENV","process","invariant","condition","c","d","f","error","args","argIndex","framesToPop","intlConfigPropNames","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","str","match","filterProps","whitelist","reduce","filtered","invariantIntlContext","intl","shallowEquals","objA","objB","keysA","keysB","bHasOwnProperty","bind","shouldIntlComponentUpdate","nextProps","nextState","state","context","nextContext","nextIntl","createError","exception","eMsg","defaultErrorHandler","getDisplayName","Component","displayName","injectIntl","WrappedComponent","intlPropName","withRef","InjectIntl","_wrappedInstance","React","ref","contextTypes","defineMessages","messageDescriptors","resolveLocale","findPluralFunction","IntlPluralFormat","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","cacheId","getCacheId","inputs","JSON","orderedProps","stringify","prop","orderedKeys","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","onError","formatDate","config","timeZone","filteredOptions","getDateTimeFormat","formatTime","formatRelative","oldThresholds","getRelativeFormat","formatNumber","getNumberFormat","formatPlural","getPluralFormat","formatMessage","messageDescriptor","defaultFormats","defaultMessage","isValidElement","hasValues","formattedMessage","formatter","getMessageFormat","formatHTMLMessage","rawValues","escapedValues","escaped","intlFormatPropNames","defaultProps","IntlProvider","intlContext","initialNow","formatters","memoizeIntlConstructor","_didDisplay","propName","boundFormatFns","getConfig","getBoundFormatFns","next","Children","only","children","childContextTypes","propTypes","FormattedDate","Text","textComponent","formattedDate","FormattedTime","formattedTime","SECOND","MINUTE","HOUR","DAY","MAX_TIMER_DELAY","selectUnits","delta","absDelta","getUnitDelay","isSameDate","aTime","bTime","FormattedRelative","_timer","updateInterval","unitDelay","unitRemainder","delay","setTimeout","setState","scheduleNextUpdate","nextValue","formattedRelative","FormattedNumber","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","node","defaultFormatMessage","baseFormatMessage","FormattedMessage","nextValues","nextPropsToCheck","tagName","tokenDelimiter","tokenizedValues","uid","floor","random","generateToken","counter","token","nodes","hasElements","map","createElement","FormattedHTMLMessage","formattedHTMLMessage","html","__html","defaultLocaleData"],"mappings":"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"}