Merge branch 'mastofe/system-font' into 'develop'
[akkoma] / priv / static / packs / public.js.map
index 78719e81b2d8e9e6f1b205a601e0eddb0801dcdf..4bb64556a3878e29bb005131558c8ac1628e38fc 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///public.js","webpack:///./app/javascript/mastodon/components/media_gallery.js","webpack:///./app/javascript/mastodon/features/status/components/card.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/react-intl/lib/index.es.js","webpack:///./app/javascript/packs/public.js","webpack:///./app/javascript/mastodon/containers/video_container.js","webpack:///./app/javascript/mastodon/containers/card_container.js","webpack:///./app/javascript/mastodon/containers/media_galleries_container.js"],"names":["webpackJsonp","154","module","__webpack_exports__","__webpack_require__","Object","defineProperty","value","d","MediaGallery","_class","_temp2","_class2","_class3","_temp4","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","__WEBPACK_IMPORTED_MODULE_5_immutable__","__WEBPACK_IMPORTED_MODULE_6__icon_button__","__WEBPACK_IMPORTED_MODULE_7_react_intl__","__WEBPACK_IMPORTED_MODULE_8__is_mobile__","__WEBPACK_IMPORTED_MODULE_9_classnames__","__WEBPACK_IMPORTED_MODULE_9_classnames___default","__WEBPACK_IMPORTED_MODULE_10__initial_state__","messages","toggle_visible","id","defaultMessage","Item","_React$PureComponent","_temp","_this","_ret","this","_len","arguments","length","args","Array","_key","call","apply","concat","handleMouseEnter","e","hoverToPlay","target","play","handleMouseLeave","pause","currentTime","handleClick","_this$props","props","index","onClick","button","preventDefault","stopPropagation","prototype","attachment","get","render","_props","size","standalone","width","height","top","left","bottom","right","thumbnail","previewUrl","previewWidth","getIn","originalUrl","originalWidth","hasSize","srcSet","sizes","focusX","focusY","x","y","className","href","src","alt","title","style","objectPosition","autoPlay","autoplay","aria-label","role","onMouseEnter","onMouseLeave","loop","muted","a","PureComponent","defaultProps","_React$PureComponent2","_temp3","_this2","_ret2","_len2","_key2","state","visible","sensitive","handleOpen","setState","onOpenMedia","media","handleRef","node","offsetWidth","componentWillReceiveProps","nextProps","isStandaloneEligible","_props2","_this3","_props3","intl","_state","children","take","map","i","warning","createElement","type","ref","spoiler-button--visible","formatMessage","icon","overlay","332","Card","__WEBPACK_IMPORTED_MODULE_5_immutable___default","__WEBPACK_IMPORTED_MODULE_6_punycode__","__WEBPACK_IMPORTED_MODULE_6_punycode___default","__WEBPACK_IMPORTED_MODULE_7_classnames__","__WEBPACK_IMPORTED_MODULE_7_classnames___default","decodeIDNA","domain","split","part","indexOf","decode","slice","join","getHostname","url","parser","document","hostname","trim","text","len","cut","substring","domParser","DOMParser","addAutoPlay","html","parseFromString","documentElement","iframe","querySelector","innerHTML","embedded","handlePhotoClick","card","fromJS","description","meta","original","handleEmbedClick","setRef","c","renderVideo","content","__html","ratio","dangerouslySetInnerHTML","maxDescription","provider","horizontal","interactive","rel","embed","backgroundImage","iconVariant","333","exports","global","__WEBPACK_AMD_DEFINE_RESULT__","root","error","RangeError","errors","array","fn","result","mapDomain","string","parts","replace","regexSeparators","ucs2decode","extra","output","counter","charCodeAt","push","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","floor","damp","baseMinusTMin","tMax","skew","input","out","basic","j","oldi","w","t","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","test","toLowerCase","toASCII","regexNonASCII","freeGlobal","nodeType","punycode","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","undefined","6","addLocaleData","data","isArray","forEach","localeData","locale","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default","__addLocaleData","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default","hasLocaleData","localeParts","hasIMFAndIRFLocaleData","pop","normalizedLocale","__localeData__","escape","str","UNSAFE_CHARS_REGEX","match","ESCAPED_CHARS","filterProps","whitelist","defaults$$1","reduce","filtered","name","hasOwnProperty","invariantIntlContext","_ref","__WEBPACK_IMPORTED_MODULE_5_invariant___default","shallowEquals","objA","objB","_typeof","keysA","keys","keysB","bHasOwnProperty","bind","shouldIntlComponentUpdate","_ref2","nextState","_ref2$context","context","nextContext","_context$intl","_nextContext$intl","nextIntl","intlConfigPropNames","getDisplayName","Component$$1","displayName","injectIntl","WrappedComponent","options","_options$intlPropName","intlPropName","_options$withRef","withRef","InjectIntl","_Component","classCallCheck","possibleConstructorReturn","__proto__","getPrototypeOf","inherits","createClass","key","refs","wrappedInstance","_extends","contextTypes","intlShape","defineMessages","messageDescriptors","resolveLocale","locales","_resolveLocale","findPluralFunction","_findPluralRuleFunction","updateRelativeFormatThresholds","newThresholds","thresholds","second","minute","hour","day","month","getNamedFormat","formats","format","formatDate","config","date","Date","filteredOptions","DATE_TIME_FORMAT_OPTIONS","getDateTimeFormat","formatTime","formatRelative","now","RELATIVE_FORMAT_OPTIONS","oldThresholds","RELATIVE_FORMAT_THRESHOLDS","getRelativeFormat","isFinite","formatNumber","NUMBER_FORMAT_OPTIONS","getNumberFormat","formatPlural","PLURAL_FORMAT_OPTIONS","getPluralFormat","messageDescriptor","values","defaultLocale","defaultFormats","message","formattedMessage","getMessageFormat","formatHTMLMessage","rawValues","escaped","selectUnits","absDelta","abs","MINUTE","HOUR","DAY","getUnitDelay","units","SECOND","MAX_TIMER_DELAY","isSameDate","b","aTime","getTime","bTime","IntlProvider","FormattedDate","FormattedNumber","FormattedMessage","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","__WEBPACK_IMPORTED_MODULE_5_invariant__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default","defaultLocaleData","pluralRuleFunction","ord","s","v0","t0","Number","n10","n100","fields","year","relative","0","1","-1","relativeTime","future","one","other","past","Symbol","iterator","obj","constructor","instance","Constructor","TypeError","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","assign","source","subClass","superClass","create","setPrototypeOf","objectWithoutProperties","self","ReferenceError","toConsumableArray","arr","arr2","from","bool","number","func","object","oneOf","shape","any","oneOfType","localeMatcher","narrowShortLong","numeric2digit","funcReq","isRequired","intlConfigPropTypes","textComponent","intlFormatPropTypes","formatters","dateTimeFormatPropTypes","formatMatcher","timeZone","hour12","weekday","era","timeZoneName","numberFormatPropTypes","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","relativeFormatPropTypes","pluralFormatPropTypes","&",">","<","\"","'","IntlPluralFormat","useOrdinal","pluralFn","freeze","intlConfigPropNames$1","intlFormatPropNames","Intl","intlContext","initialNow","_ref$formatters","DateTimeFormat","NumberFormat","_didDisplay","propName","_config","boundFormatFns","getConfig","getBoundFormatFns","next","only","childContextTypes","Text","formattedDate","FormattedTime","formattedTime","FormattedRelative","clearTimeout","_timer","updateInterval","time","unitDelay","unitRemainder","delay","max","setTimeout","scheduleNextUpdate","formattedRelative","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","nextPropsToCheck","_props$tagName","tagName","tokenDelimiter","tokenizedValues","elements","uid","random","toString","generateToken","token","nodes","filter","FormattedHTMLMessage","formattedHTMLMessage","690","main","_require","IntlRelativeFormat","default","_require2","delegate","emojify","_require3","getLocale","_getLocale","VideoContainer","CardContainer","React","ReactDOM","__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__","lang","dateTimeFormat","relativeFormat","querySelectorAll","datetime","getAttribute","textContent","addEventListener","window","open","JSON","parse","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default","mediaGalleries","MediaGalleriesContainer","galleries","body","appendChild","location","contentEl","parentNode","display","marginBottom","_ref3","nameCounter","_ref4","noteCounter","_ref5","avatar","_ref6","files","file","URL","createObjectURL","dataset","originalSrc","_ref7","header","_ref8","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__","__WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__","parent","postMessage","getElementsByTagName","scrollHeight","then","catch","console","691","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_5_react__","__WEBPACK_IMPORTED_MODULE_5_react___default","__WEBPACK_IMPORTED_MODULE_6_react_intl__","__WEBPACK_IMPORTED_MODULE_7__locales__","__WEBPACK_IMPORTED_MODULE_8__features_video__","692","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default","__WEBPACK_IMPORTED_MODULE_6__features_status_components_card__","__WEBPACK_IMPORTED_MODULE_7_immutable__","693","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_6_react__","__WEBPACK_IMPORTED_MODULE_6_react___default","__WEBPACK_IMPORTED_MODULE_7_react_dom__","__WEBPACK_IMPORTED_MODULE_7_react_dom___default","__WEBPACK_IMPORTED_MODULE_8_react_intl__","__WEBPACK_IMPORTED_MODULE_9__locales__","__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__","__WEBPACK_IMPORTED_MODULE_11__components_modal_root__","__WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__","__WEBPACK_IMPORTED_MODULE_13_immutable__","handleOpenMedia","classList","add","handleCloseMedia","remove","Fragment","gallery","_JSON$parse","createPortal","onClose"],"mappings":"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","file":"public.js","sourcesContent":["webpackJsonp([29,25],{\n\n/***/ 154:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MediaGallery; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__icon_button__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__is_mobile__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__initial_state__ = __webpack_require__(11);\n\n\n\n\n\nvar _class, _temp2, _class2, _class3, _temp4;\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"f\" /* defineMessages */])({\n  toggle_visible: {\n    'id': 'media_gallery.toggle_visible',\n    'defaultMessage': 'Toggle visibility'\n  }\n});\n\nvar Item = (_temp2 = _class = function (_React$PureComponent) {\n  __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Item, _React$PureComponent);\n\n  function Item() {\n    var _temp, _this, _ret;\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Item);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleMouseEnter = function (e) {\n      if (_this.hoverToPlay()) {\n        e.target.play();\n      }\n    }, _this.handleMouseLeave = function (e) {\n      if (_this.hoverToPlay()) {\n        e.target.pause();\n        e.target.currentTime = 0;\n      }\n    }, _this.handleClick = function (e) {\n      var _this$props = _this.props,\n          index = _this$props.index,\n          onClick = _this$props.onClick;\n\n\n      if (e.button === 0) {\n        e.preventDefault();\n        onClick(index);\n      }\n\n      e.stopPropagation();\n    }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n  }\n\n  Item.prototype.hoverToPlay = function hoverToPlay() {\n    var attachment = this.props.attachment;\n\n    return !__WEBPACK_IMPORTED_MODULE_10__initial_state__[\"a\" /* autoPlayGif */] && attachment.get('type') === 'gifv';\n  };\n\n  Item.prototype.render = function render() {\n    var _props = this.props,\n        attachment = _props.attachment,\n        index = _props.index,\n        size = _props.size,\n        standalone = _props.standalone;\n\n\n    var width = 50;\n    var height = 100;\n    var top = 'auto';\n    var left = 'auto';\n    var bottom = 'auto';\n    var right = 'auto';\n\n    if (size === 1) {\n      width = 100;\n    }\n\n    if (size === 4 || size === 3 && index > 0) {\n      height = 50;\n    }\n\n    if (size === 2) {\n      if (index === 0) {\n        right = '2px';\n      } else {\n        left = '2px';\n      }\n    } else if (size === 3) {\n      if (index === 0) {\n        right = '2px';\n      } else if (index > 0) {\n        left = '2px';\n      }\n\n      if (index === 1) {\n        bottom = '2px';\n      } else if (index > 1) {\n        top = '2px';\n      }\n    } else if (size === 4) {\n      if (index === 0 || index === 2) {\n        right = '2px';\n      }\n\n      if (index === 1 || index === 3) {\n        left = '2px';\n      }\n\n      if (index < 2) {\n        bottom = '2px';\n      } else {\n        top = '2px';\n      }\n    }\n\n    var thumbnail = '';\n\n    if (attachment.get('type') === 'image') {\n      var previewUrl = attachment.get('preview_url');\n      var previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n      var originalUrl = attachment.get('url');\n      var originalWidth = attachment.getIn(['meta', 'original', 'width']);\n\n      var hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n      var srcSet = hasSize ? originalUrl + ' ' + originalWidth + 'w, ' + previewUrl + ' ' + previewWidth + 'w' : null;\n      var sizes = hasSize ? '(min-width: 1025px) ' + 320 * (width / 100) + 'px, ' + width + 'vw' : null;\n\n      var focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n      var focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n      var x = (focusX / 2 + .5) * 100;\n      var y = (focusY / -2 + .5) * 100;\n\n      thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n        className: 'media-gallery__item-thumbnail',\n        href: attachment.get('remote_url') || originalUrl,\n        onClick: this.handleClick,\n        target: '_blank'\n      }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n        src: previewUrl,\n        srcSet: srcSet,\n        sizes: sizes,\n        alt: attachment.get('description'),\n        title: attachment.get('description'),\n        style: { objectPosition: x + '% ' + y + '%' }\n      }));\n    } else if (attachment.get('type') === 'gifv') {\n      var autoPlay = !Object(__WEBPACK_IMPORTED_MODULE_8__is_mobile__[\"a\" /* isIOS */])() && __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"a\" /* autoPlayGif */];\n\n      thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n        className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('media-gallery__gifv', { autoplay: autoPlay })\n      }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('video', {\n        className: 'media-gallery__item-gifv-thumbnail',\n        'aria-label': attachment.get('description'),\n        role: 'application',\n        src: attachment.get('url'),\n        onClick: this.handleClick,\n        onMouseEnter: this.handleMouseEnter,\n        onMouseLeave: this.handleMouseLeave,\n        autoPlay: autoPlay,\n        loop: true,\n        muted: true\n      }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n        className: 'media-gallery__gifv__label'\n      }, void 0, 'GIF'));\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n      className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('media-gallery__item', { standalone: standalone }),\n      style: { left: left, top: top, right: right, bottom: bottom, width: width + '%', height: height + '%' }\n    }, attachment.get('id'), thumbnail);\n  };\n\n  return Item;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.defaultProps = {\n  standalone: false,\n  index: 0,\n  size: 1\n}, _temp2);\n\nvar MediaGallery = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"g\" /* injectIntl */])(_class2 = (_temp4 = _class3 = function (_React$PureComponent2) {\n  __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(MediaGallery, _React$PureComponent2);\n\n  function MediaGallery() {\n    var _temp3, _this2, _ret2;\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, MediaGallery);\n\n    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return _ret2 = (_temp3 = (_this2 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this2), _this2.state = {\n      visible: !_this2.props.sensitive || __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"f\" /* displaySensitiveMedia */]\n    }, _this2.handleOpen = function () {\n      _this2.setState({ visible: !_this2.state.visible });\n    }, _this2.handleClick = function (index) {\n      _this2.props.onOpenMedia(_this2.props.media, index);\n    }, _this2.handleRef = function (node) {\n      if (node /*&& this.isStandaloneEligible()*/) {\n          // offsetWidth triggers a layout, so only calculate when we need to\n          _this2.setState({\n            width: node.offsetWidth\n          });\n        }\n    }, _temp3), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this2, _ret2);\n  }\n\n  MediaGallery.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (!Object(__WEBPACK_IMPORTED_MODULE_5_immutable__[\"is\"])(nextProps.media, this.props.media)) {\n      this.setState({ visible: !nextProps.sensitive });\n    }\n  };\n\n  MediaGallery.prototype.isStandaloneEligible = function isStandaloneEligible() {\n    var _props2 = this.props,\n        media = _props2.media,\n        standalone = _props2.standalone;\n\n    return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n  };\n\n  MediaGallery.prototype.render = function render() {\n    var _this3 = this;\n\n    var _props3 = this.props,\n        media = _props3.media,\n        intl = _props3.intl,\n        sensitive = _props3.sensitive,\n        height = _props3.height;\n    var _state = this.state,\n        width = _state.width,\n        visible = _state.visible;\n\n\n    var children = void 0;\n\n    var style = {};\n\n    if (this.isStandaloneEligible()) {\n      if (width) {\n        style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n      }\n    } else if (width) {\n      style.height = width / (16 / 9);\n    } else {\n      style.height = height;\n    }\n\n    if (!visible) {\n      var warning = void 0;\n\n      if (sensitive) {\n        warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n          id: 'status.sensitive_warning',\n          defaultMessage: 'Sensitive content'\n        });\n      } else {\n        warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n          id: 'status.media_hidden',\n          defaultMessage: 'Media hidden'\n        });\n      }\n\n      children = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n        'button',\n        { type: 'button', className: 'media-spoiler', onClick: this.handleOpen, style: style, ref: this.handleRef },\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n          className: 'media-spoiler__warning'\n        }, void 0, warning),\n        __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n          className: 'media-spoiler__trigger'\n        }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n          id: 'status.sensitive_toggle',\n          defaultMessage: 'Click to view'\n        }))\n      );\n    } else {\n      var size = media.take(4).size;\n\n      if (this.isStandaloneEligible()) {\n        children = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n          standalone: true,\n          onClick: this.handleClick,\n          attachment: media.get(0)\n        });\n      } else {\n        children = media.take(4).map(function (attachment, i) {\n          return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n            onClick: _this3.handleClick,\n            attachment: attachment,\n            index: i,\n            size: size\n          }, attachment.get('id'));\n        });\n      }\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n      'div',\n      { className: 'media-gallery', style: style, ref: this.handleRef },\n      __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n        className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('spoiler-button', { 'spoiler-button--visible': visible })\n      }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__icon_button__[\"a\" /* default */], {\n        title: intl.formatMessage(messages.toggle_visible),\n        icon: visible ? 'eye' : 'eye-slash',\n        overlay: true,\n        onClick: this.handleOpen\n      })),\n      children\n    );\n  };\n\n  return MediaGallery;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class3.defaultProps = {\n  standalone: false\n}, _temp4)) || _class2;\n\n\n\n/***/ }),\n\n/***/ 332:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Card; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode__ = __webpack_require__(333);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_punycode__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\n\n\n\nvar IDNA_PREFIX = 'xn--';\n\nvar decodeIDNA = function decodeIDNA(domain) {\n  return domain.split('.').map(function (part) {\n    return part.indexOf(IDNA_PREFIX) === 0 ? __WEBPACK_IMPORTED_MODULE_6_punycode___default.a.decode(part.slice(IDNA_PREFIX.length)) : part;\n  }).join('.');\n};\n\nvar getHostname = function getHostname(url) {\n  var parser = document.createElement('a');\n  parser.href = url;\n  return parser.hostname;\n};\n\nvar trim = function trim(text, len) {\n  var cut = text.indexOf(' ', len);\n\n  if (cut === -1) {\n    return text;\n  }\n\n  return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nvar domParser = new DOMParser();\n\nvar addAutoPlay = function addAutoPlay(html) {\n  var document = domParser.parseFromString(html, 'text/html').documentElement;\n  var iframe = document.querySelector('iframe');\n\n  if (iframe) {\n    if (iframe.src.indexOf('?') !== -1) {\n      iframe.src += '&';\n    } else {\n      iframe.src += '?';\n    }\n\n    iframe.src += 'autoplay=1&auto_play=1';\n\n    // DOM parser creates html/body elements around original HTML fragment,\n    // so we need to get innerHTML out of the body and not the entire document\n    return document.querySelector('body').innerHTML;\n  }\n\n  return html;\n};\n\nvar Card = (_temp2 = _class = function (_React$PureComponent) {\n  __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Card, _React$PureComponent);\n\n  function Card() {\n    var _temp, _this, _ret;\n\n    __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Card);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.state = {\n      width: 280,\n      embedded: false\n    }, _this.handlePhotoClick = function () {\n      var _this$props = _this.props,\n          card = _this$props.card,\n          onOpenMedia = _this$props.onOpenMedia;\n\n\n      onOpenMedia(__WEBPACK_IMPORTED_MODULE_5_immutable___default.a.fromJS([{\n        type: 'image',\n        url: card.get('embed_url'),\n        description: card.get('title'),\n        meta: {\n          original: {\n            width: card.get('width'),\n            height: card.get('height')\n          }\n        }\n      }]), 0);\n    }, _this.handleEmbedClick = function () {\n      var card = _this.props.card;\n\n\n      if (card.get('type') === 'photo') {\n        _this.handlePhotoClick();\n      } else {\n        _this.setState({ embedded: true });\n      }\n    }, _this.setRef = function (c) {\n      if (c) {\n        _this.setState({ width: c.offsetWidth });\n      }\n    }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n  }\n\n  Card.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (this.props.card !== nextProps.card) {\n      this.setState({ embedded: false });\n    }\n  };\n\n  Card.prototype.renderVideo = function renderVideo() {\n    var card = this.props.card;\n\n    var content = { __html: addAutoPlay(card.get('html')) };\n    var width = this.state.width;\n\n    var ratio = card.get('width') / card.get('height');\n    var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n    return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement('div', {\n      ref: this.setRef,\n      className: 'status-card__image status-card-video',\n      dangerouslySetInnerHTML: content,\n      style: { height: height }\n    });\n  };\n\n  Card.prototype.render = function render() {\n    var _props = this.props,\n        card = _props.card,\n        maxDescription = _props.maxDescription;\n    var _state = this.state,\n        width = _state.width,\n        embedded = _state.embedded;\n\n\n    if (card === null) {\n      return null;\n    }\n\n    var provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n    var horizontal = card.get('width') > card.get('height') && card.get('width') + 100 >= width || card.get('type') !== 'link';\n    var className = __WEBPACK_IMPORTED_MODULE_7_classnames___default()('status-card', { horizontal: horizontal });\n    var interactive = card.get('type') !== 'link';\n    var title = interactive ? __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n      className: 'status-card__title',\n      href: card.get('url'),\n      title: card.get('title'),\n      rel: 'noopener',\n      target: '_blank'\n    }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, card.get('title'))) : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {\n      className: 'status-card__title',\n      title: card.get('title')\n    }, void 0, card.get('title'));\n    var ratio = card.get('width') / card.get('height');\n    var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n    var description = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n      className: 'status-card__content'\n    }, void 0, title, !horizontal && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('p', {\n      className: 'status-card__description'\n    }, void 0, trim(card.get('description') || '', maxDescription)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n      className: 'status-card__host'\n    }, void 0, provider));\n\n    var embed = '';\n    var thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n      style: { backgroundImage: 'url(' + card.get('image') + ')', width: horizontal ? width : null, height: horizontal ? height : null },\n      className: 'status-card__image-image'\n    });\n\n    if (interactive) {\n      if (embedded) {\n        embed = this.renderVideo();\n      } else {\n        var iconVariant = 'play';\n\n        if (card.get('type') === 'photo') {\n          iconVariant = 'search-plus';\n        }\n\n        embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n          className: 'status-card__image'\n        }, void 0, thumbnail, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n          className: 'status-card__actions'\n        }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n          onClick: this.handleEmbedClick\n        }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n          className: 'fa fa-' + iconVariant\n        })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n          href: card.get('url'),\n          target: '_blank',\n          rel: 'noopener'\n        }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n          className: 'fa fa-external-link'\n        })))));\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n        'div',\n        { className: className, ref: this.setRef },\n        embed,\n        description\n      );\n    } else if (card.get('image')) {\n      embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n        className: 'status-card__image'\n      }, void 0, thumbnail);\n    }\n\n    return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n      'a',\n      { href: card.get('url'), className: className, target: '_blank', rel: 'noopener', ref: this.setRef },\n      embed,\n      description\n    );\n  };\n\n  return Card;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.defaultProps = {\n  maxDescription: 50\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 333:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function (root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module && !module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n  * The `punycode` object.\n  * @name punycode\n  * @type Object\n  */\n\tvar punycode,\n\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647,\n\t    // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\t    tMin = 1,\n\t    tMax = 26,\n\t    skew = 38,\n\t    damp = 700,\n\t    initialBias = 72,\n\t    initialN = 128,\n\t    // 0x80\n\tdelimiter = '-',\n\t    // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\t    regexNonASCII = /[^\\x20-\\x7E]/,\n\t    // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n\t    // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\t    floor = Math.floor,\n\t    stringFromCharCode = String.fromCharCode,\n\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n  * A generic error utility function.\n  * @private\n  * @param {String} type The error type.\n  * @returns {Error} Throws a `RangeError` with the applicable error message.\n  */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n  * A generic `Array#map` utility function.\n  * @private\n  * @param {Array} array The array to iterate over.\n  * @param {Function} callback The function that gets called for every array\n  * item.\n  * @returns {Array} A new array of values returned by the callback function.\n  */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n  * A simple `Array#map`-like wrapper to work with domain name strings or email\n  * addresses.\n  * @private\n  * @param {String} domain The domain name or email address.\n  * @param {Function} callback The function that gets called for every\n  * character.\n  * @returns {Array} A new string of characters returned by the callback\n  * function.\n  */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n  * Creates an array containing the numeric code points of each Unicode\n  * character in the string. While JavaScript uses UCS-2 internally,\n  * this function will convert a pair of surrogate halves (each of which\n  * UCS-2 exposes as separate characters) into a single code point,\n  * matching UTF-16.\n  * @see `punycode.ucs2.encode`\n  * @see <https://mathiasbynens.be/notes/javascript-encoding>\n  * @memberOf punycode.ucs2\n  * @name decode\n  * @param {String} string The Unicode input string (UCS-2).\n  * @returns {Array} The new array of code points.\n  */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n  * Creates a string based on an array of numeric code points.\n  * @see `punycode.ucs2.decode`\n  * @memberOf punycode.ucs2\n  * @name encode\n  * @param {Array} codePoints The array of numeric code points.\n  * @returns {String} The new Unicode string (UCS-2).\n  */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function (value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n  * Converts a basic code point into a digit/integer.\n  * @see `digitToBasic()`\n  * @private\n  * @param {Number} codePoint The basic numeric code point value.\n  * @returns {Number} The numeric value of a basic code point (for use in\n  * representing integers) in the range `0` to `base - 1`, or `base` if\n  * the code point does not represent a value.\n  */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n  * Converts a digit/integer into a basic code point.\n  * @see `basicToDigit()`\n  * @private\n  * @param {Number} digit The numeric value of a basic code point.\n  * @returns {Number} The basic code point whose value (when used for\n  * representing integers) is `digit`, which needs to be in the range\n  * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n  * used; else, the lowercase form is used. The behavior is undefined\n  * if `flag` is non-zero and `digit` has no uppercase form.\n  */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n  * Bias adaptation function as per section 3.4 of RFC 3492.\n  * https://tools.ietf.org/html/rfc3492#section-3.4\n  * @private\n  */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n  * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n  * symbols.\n  * @memberOf punycode\n  * @param {String} input The Punycode string of ASCII-only symbols.\n  * @returns {String} The resulting string of Unicode symbols.\n  */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\n\t\t/** Cached calculation results */\n\t\tbaseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n  * Converts a string of Unicode symbols (e.g. a domain name label) to a\n  * Punycode string of ASCII-only symbols.\n  * @memberOf punycode\n  * @param {String} input The string of Unicode symbols.\n  * @returns {String} The resulting Punycode string of ASCII-only symbols.\n  */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\n\t\t/** `inputLength` will hold the number of code points in `input`. */\n\t\tinputLength,\n\n\t\t/** Cached calculation results */\n\t\thandledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n  * Converts a Punycode string representing a domain name or an email address\n  * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n  * it doesn't matter if you call it on a string that has already been\n  * converted to Unicode.\n  * @memberOf punycode\n  * @param {String} input The Punycoded domain name or email address to\n  * convert to Unicode.\n  * @returns {String} The Unicode representation of the given Punycode\n  * string.\n  */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t\t});\n\t}\n\n\t/**\n  * Converts a Unicode string representing a domain name or an email address to\n  * Punycode. Only the non-ASCII parts of the domain name will be converted,\n  * i.e. it doesn't matter if you call it with a domain that's already in\n  * ASCII.\n  * @memberOf punycode\n  * @param {String} input The domain name or email address to convert, as a\n  * Unicode string.\n  * @returns {String} The Punycode representation of the given domain name or\n  * email address.\n  */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n   * A string representing the current Punycode.js version number.\n   * @memberOf punycode\n   * @type String\n   */\n\t\t'version': '1.4.1',\n\t\t/**\n   * An object of methods to convert from JavaScript's internal character\n   * representation (UCS-2) to Unicode code points, and back.\n   * @see <https://mathiasbynens.be/notes/javascript-encoding>\n   * @memberOf punycode\n   * @type Object\n   */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn punycode;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n})(this);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(73)(module), __webpack_require__(45)))\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return addLocaleData; });\n/* unused harmony export intlShape */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return injectIntl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return defineMessages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return IntlProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FormattedDate; });\n/* unused harmony export FormattedTime */\n/* unused harmony export FormattedRelative */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FormattedNumber; });\n/* unused harmony export FormattedPlural */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FormattedMessage; });\n/* unused harmony export FormattedHTMLMessage */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat__ = __webpack_require__(53);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache__ = __webpack_require__(81);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__);\n/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n\n\n\n\n\n\n\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n    var s = String(n).split(\".\"),\n        v0 = !s[1],\n        t0 = Number(s[0]) == n,\n        n10 = t0 && s[0].slice(-1),\n        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  }, \"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\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n  var locales = Array.isArray(data) ? data : [data];\n\n  locales.forEach(function (localeData) {\n    if (localeData && localeData.locale) {\n      __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__addLocaleData(localeData);\n      __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__addLocaleData(localeData);\n    }\n  });\n}\n\nfunction hasLocaleData(locale) {\n  var 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  var normalizedLocale = locale && locale.toLowerCase();\n\n  return !!(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__localeData__[normalizedLocale] && __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n  return typeof obj;\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nvar inherits = function (subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n  var target = {};\n\n  for (var i in obj) {\n    if (keys.indexOf(i) >= 0) continue;\n    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n    target[i] = obj[i];\n  }\n\n  return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar toConsumableArray = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  } else {\n    return Array.from(arr);\n  }\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\nvar bool = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool;\nvar number = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number;\nvar string = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string;\nvar func = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func;\nvar object = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object;\nvar oneOf = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf;\nvar shape = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape;\nvar any = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any;\nvar oneOfType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n  locale: string,\n  formats: object,\n  messages: object,\n  textComponent: any,\n\n  defaultLocale: string,\n  defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n  formatDate: funcReq,\n  formatTime: funcReq,\n  formatRelative: funcReq,\n  formatNumber: funcReq,\n  formatPlural: funcReq,\n  formatMessage: funcReq,\n  formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n  formatters: object,\n  now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n  id: string.isRequired,\n  description: oneOfType([string, object]),\n  defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n  localeMatcher: 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\nvar numberFormatPropTypes = {\n  localeMatcher: 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\nvar relativeFormatPropTypes = {\n  style: oneOf(['best fit', 'numeric']),\n  units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n  style: oneOf(['cardinal', 'ordinal'])\n};\n\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\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n  '&': '&amp;',\n  '>': '&gt;',\n  '<': '&lt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n  return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n    return ESCAPED_CHARS[match];\n  });\n}\n\nfunction filterProps(props, whitelist) {\n  var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  return whitelist.reduce(function (filtered, name) {\n    if (props.hasOwnProperty(name)) {\n      filtered[name] = props[name];\n    } else if (defaults$$1.hasOwnProperty(name)) {\n      filtered[name] = defaults$$1[name];\n    }\n\n    return filtered;\n  }, {});\n}\n\nfunction invariantIntlContext() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      intl = _ref.intl;\n\n  __WEBPACK_IMPORTED_MODULE_5_invariant___default()(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n\n  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var 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  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n  for (var 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\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n  var props = _ref2.props,\n      state = _ref2.state,\n      _ref2$context = _ref2.context,\n      context = _ref2$context === undefined ? {} : _ref2$context;\n  var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var _context$intl = context.intl,\n      intl = _context$intl === undefined ? {} : _context$intl;\n  var _nextContext$intl = nextContext.intl,\n      nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n  return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\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\nfunction getDisplayName(Component$$1) {\n  return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _options$intlPropName = options.intlPropName,\n      intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n      _options$withRef = options.withRef,\n      withRef = _options$withRef === undefined ? false : _options$withRef;\n\n  var InjectIntl = function (_Component) {\n    inherits(InjectIntl, _Component);\n\n    function InjectIntl(props, context) {\n      classCallCheck(this, InjectIntl);\n\n      var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n      invariantIntlContext(context);\n      return _this;\n    }\n\n    createClass(InjectIntl, [{\n      key: 'getWrappedInstance',\n      value: function getWrappedInstance() {\n        __WEBPACK_IMPORTED_MODULE_5_invariant___default()(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n        return this.refs.wrappedInstance;\n      }\n    }, {\n      key: 'render',\n      value: function render() {\n        return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n          ref: withRef ? 'wrappedInstance' : null\n        }));\n      }\n    }]);\n    return InjectIntl;\n  }(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n  InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n  InjectIntl.contextTypes = {\n    intl: intlShape\n  };\n  InjectIntl.WrappedComponent = WrappedComponent;\n\n  return InjectIntl;\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\nfunction 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/*\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\nfunction resolveLocale(locales) {\n  // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n  return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n  // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n  return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  classCallCheck(this, IntlPluralFormat);\n\n  var useOrdinal = options.style === 'ordinal';\n  var pluralFn = findPluralFunction(resolveLocale(locales));\n\n  this.format = function (value) {\n    return pluralFn(value, useOrdinal);\n  };\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\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar 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  var thresholds = __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds;\n  thresholds.second = newThresholds.second;\n  thresholds.minute = newThresholds.minute;\n  thresholds.hour = newThresholds.hour;\n  thresholds.day = newThresholds.day;\n  thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n  var format = formats && formats[type] && formats[type][name];\n  if (format) {\n    return format;\n  }\n\n  if (false) {\n    console.error('[React Intl] No ' + type + ' format named: ' + name);\n  }\n}\n\nfunction formatDate(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n  var date = new Date(value);\n  var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n  try {\n    return state.getDateTimeFormat(locale, filteredOptions).format(date);\n  } catch (e) {\n    if (false) {\n      console.error('[React Intl] Error formatting date.\\n' + e);\n    }\n  }\n\n  return String(date);\n}\n\nfunction formatTime(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n  var date = new Date(value);\n  var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n  if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n    // Add default formatting options if hour, minute, or second isn't defined.\n    filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n  }\n\n  try {\n    return state.getDateTimeFormat(locale, filteredOptions).format(date);\n  } catch (e) {\n    if (false) {\n      console.error('[React Intl] Error formatting time.\\n' + e);\n    }\n  }\n\n  return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n  var date = new Date(value);\n  var now = new Date(options.now);\n  var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n  var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n  // Capture the current threshold values, then temporarily override them with\n  // specific values just for this render.\n  var oldThresholds = _extends({}, __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.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    if (false) {\n      console.error('[React Intl] Error formatting relative time.\\n' + e);\n    }\n  } finally {\n    updateRelativeFormatThresholds(oldThresholds);\n  }\n\n  return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n  var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n  var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n  try {\n    return state.getNumberFormat(locale, filteredOptions).format(value);\n  } catch (e) {\n    if (false) {\n      console.error('[React Intl] Error formatting number.\\n' + e);\n    }\n  }\n\n  return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale;\n\n  var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n  try {\n    return state.getPluralFormat(locale, filteredOptions).format(value);\n  } catch (e) {\n    if (false) {\n      console.error('[React Intl] Error formatting plural.\\n' + e);\n    }\n  }\n\n  return 'other';\n}\n\nfunction formatMessage(config, state) {\n  var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats,\n      messages = config.messages,\n      defaultLocale = config.defaultLocale,\n      defaultFormats = config.defaultFormats;\n  var id = messageDescriptor.id,\n      defaultMessage = messageDescriptor.defaultMessage;\n\n  // `id` is a required field of a Message Descriptor.\n\n  __WEBPACK_IMPORTED_MODULE_5_invariant___default()(id, '[React Intl] An `id` must be provided to format a message.');\n\n  var message = messages && messages[id];\n  var 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 && \"production\" === 'production') {\n    return message || defaultMessage || id;\n  }\n\n  var formattedMessage = void 0;\n\n  if (message) {\n    try {\n      var formatter = state.getMessageFormat(message, locale, formats);\n\n      formattedMessage = formatter.format(values);\n    } catch (e) {\n      if (false) {\n        console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n      }\n    }\n  } else {\n    if (false) {\n      // This prevents warnings from littering the console in development\n      // when no `messages` are passed into the <IntlProvider> for the\n      // default locale, and a default message is in the source.\n      if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n        console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n      }\n    }\n  }\n\n  if (!formattedMessage && defaultMessage) {\n    try {\n      var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n      formattedMessage = _formatter.format(values);\n    } catch (e) {\n      if (false) {\n        console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n      }\n    }\n  }\n\n  if (!formattedMessage) {\n    if (false) {\n      console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n    }\n  }\n\n  return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n  var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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  var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n    var 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\nvar format = Object.freeze({\n  formatDate: formatDate,\n  formatTime: formatTime,\n  formatRelative: formatRelative,\n  formatNumber: formatNumber,\n  formatPlural: formatPlural,\n  formatMessage: formatMessage,\n  formatHTMLMessage: formatHTMLMessage\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\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar 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 <IntlProvider> ancestor.\nvar defaultProps = {\n  formats: {},\n  messages: {},\n  textComponent: 'span',\n\n  defaultLocale: 'en',\n  defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n  inherits(IntlProvider, _Component);\n\n  function IntlProvider(props) {\n    var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    classCallCheck(this, IntlProvider);\n\n    var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n    __WEBPACK_IMPORTED_MODULE_5_invariant___default()(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n    var intlContext = context.intl;\n\n    // Used to stabilize time when performing an initial rendering so that\n    // all relative times use the same reference \"now\" time.\n\n    var initialNow = void 0;\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      // <IntlProvider> 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    // `<IntlProvider>`, 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\n    var _ref = intlContext || {},\n        _ref$formatters = _ref.formatters,\n        formatters = _ref$formatters === undefined ? {\n      getDateTimeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.DateTimeFormat),\n      getNumberFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.NumberFormat),\n      getMessageFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a),\n      getRelativeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a),\n      getPluralFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(IntlPluralFormat)\n    } : _ref$formatters;\n\n    _this.state = _extends({}, formatters, {\n\n      // Wrapper to provide stable \"now\" time for initial render.\n      now: function now() {\n        return _this._didDisplay ? Date.now() : initialNow;\n      }\n    });\n    return _this;\n  }\n\n  createClass(IntlProvider, [{\n    key: 'getConfig',\n    value: function getConfig() {\n      var intlContext = this.context.intl;\n\n      // Build a whitelisted config object from `props`, defaults, and\n      // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n      var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n      // Apply default props. This must be applied last after the props have\n      // been resolved and inherited from any <IntlProvider> in the ancestry.\n      // This matches how React resolves `defaultProps`.\n      for (var propName in defaultProps) {\n        if (config[propName] === undefined) {\n          config[propName] = defaultProps[propName];\n        }\n      }\n\n      if (!hasLocaleData(config.locale)) {\n        var _config = config,\n            locale = _config.locale,\n            defaultLocale = _config.defaultLocale,\n            defaultFormats = _config.defaultFormats;\n\n        if (false) {\n          console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\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 <FormattedMessage> contains a `defaultMessage` prop.\n        config = _extends({}, config, {\n          locale: defaultLocale,\n          formats: defaultFormats,\n          messages: defaultProps.messages\n        });\n      }\n\n      return config;\n    }\n  }, {\n    key: 'getBoundFormatFns',\n    value: function getBoundFormatFns(config, state) {\n      return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n        boundFormatFns[name] = format[name].bind(null, config, state);\n        return boundFormatFns;\n      }, {});\n    }\n  }, {\n    key: 'getChildContext',\n    value: function getChildContext() {\n      var config = this.getConfig();\n\n      // Bind intl factories and current config to the format functions.\n      var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n      var _state = this.state,\n          now = _state.now,\n          formatters = objectWithoutProperties(_state, ['now']);\n\n      return {\n        intl: _extends({}, config, boundFormatFns, {\n          formatters: formatters,\n          now: now\n        })\n      };\n    }\n  }, {\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this._didDisplay = true;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      return __WEBPACK_IMPORTED_MODULE_4_react__[\"Children\"].only(this.props.children);\n    }\n  }]);\n  return IntlProvider;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n  intl: intlShape\n};\nIntlProvider.childContextTypes = {\n  intl: intlShape.isRequired\n};\n false ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n  children: PropTypes.element.isRequired,\n  initialNow: PropTypes.any\n}) : void 0;\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\nvar FormattedDate = function (_Component) {\n  inherits(FormattedDate, _Component);\n\n  function FormattedDate(props, context) {\n    classCallCheck(this, FormattedDate);\n\n    var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedDate, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatDate = _context$intl.formatDate,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n      var formattedDate = formatDate(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedDate);\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedDate);\n    }\n  }]);\n  return FormattedDate;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n  intl: intlShape\n};\n false ? void 0 : void 0;\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\nvar FormattedTime = function (_Component) {\n  inherits(FormattedTime, _Component);\n\n  function FormattedTime(props, context) {\n    classCallCheck(this, FormattedTime);\n\n    var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedTime, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatTime = _context$intl.formatTime,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n      var formattedTime = formatTime(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedTime);\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedTime);\n    }\n  }]);\n  return FormattedTime;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n  intl: intlShape\n};\n false ? void 0 : void 0;\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\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n  var 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  var aTime = new Date(a).getTime();\n  var bTime = new Date(b).getTime();\n\n  return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n  inherits(FormattedRelative, _Component);\n\n  function FormattedRelative(props, context) {\n    classCallCheck(this, FormattedRelative);\n\n    var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n    invariantIntlContext(context);\n\n    var now = isFinite(props.initialNow) ? Number(props.initialNow) : 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: now };\n    return _this;\n  }\n\n  createClass(FormattedRelative, [{\n    key: 'scheduleNextUpdate',\n    value: function scheduleNextUpdate(props, state) {\n      var _this2 = this;\n\n      // Cancel and pending update because we're scheduling a new update.\n      clearTimeout(this._timer);\n\n      var value = props.value,\n          units = props.units,\n          updateInterval = props.updateInterval;\n\n      var 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      var delta = time - state.now;\n      var unitDelay = getUnitDelay(units || selectUnits(delta));\n      var 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      var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n      this._timer = setTimeout(function () {\n        _this2.setState({ now: _this2.context.intl.now() });\n      }, delay);\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this.scheduleNextUpdate(this.props, this.state);\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(_ref) {\n      var nextValue = _ref.value;\n\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    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'componentWillUpdate',\n    value: function componentWillUpdate(nextProps, nextState) {\n      this.scheduleNextUpdate(nextProps, nextState);\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      clearTimeout(this._timer);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatRelative = _context$intl.formatRelative,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n      var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n      if (typeof children === 'function') {\n        return children(formattedRelative);\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedRelative);\n    }\n  }]);\n  return FormattedRelative;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n  intl: intlShape\n};\nFormattedRelative.defaultProps = {\n  updateInterval: 1000 * 10\n};\n false ? void 0 : void 0;\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\nvar FormattedNumber = function (_Component) {\n  inherits(FormattedNumber, _Component);\n\n  function FormattedNumber(props, context) {\n    classCallCheck(this, FormattedNumber);\n\n    var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedNumber, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatNumber = _context$intl.formatNumber,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n      var formattedNumber = formatNumber(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedNumber);\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedNumber);\n    }\n  }]);\n  return FormattedNumber;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n  intl: intlShape\n};\n false ? void 0 : void 0;\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\nvar FormattedPlural = function (_Component) {\n  inherits(FormattedPlural, _Component);\n\n  function FormattedPlural(props, context) {\n    classCallCheck(this, FormattedPlural);\n\n    var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedPlural, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatPlural = _context$intl.formatPlural,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          other = _props.other,\n          children = _props.children;\n\n      var pluralCategory = formatPlural(value, this.props);\n      var formattedPlural = this.props[pluralCategory] || other;\n\n      if (typeof children === 'function') {\n        return children(formattedPlural);\n      }\n\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedPlural);\n    }\n  }]);\n  return FormattedPlural;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n  intl: intlShape\n};\nFormattedPlural.defaultProps = {\n  style: 'cardinal'\n};\n false ? void 0 : void 0;\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\nvar FormattedMessage = function (_Component) {\n  inherits(FormattedMessage, _Component);\n\n  function FormattedMessage(props, context) {\n    classCallCheck(this, FormattedMessage);\n\n    var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedMessage, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate(nextProps) {\n      var values = this.props.values;\n      var nextValues = nextProps.values;\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      var nextPropsToCheck = _extends({}, nextProps, {\n        values: values\n      });\n\n      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        next[_key - 1] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatMessage = _context$intl.formatMessage,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          id = _props.id,\n          description = _props.description,\n          defaultMessage = _props.defaultMessage,\n          values = _props.values,\n          _props$tagName = _props.tagName,\n          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n          children = _props.children;\n\n      var tokenDelimiter = void 0;\n      var tokenizedValues = void 0;\n      var elements = void 0;\n\n      var 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        var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n        var generateToken = function () {\n          var counter = 0;\n          return function () {\n            return 'ELEMENT-' + uid + '-' + (counter += 1);\n          };\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(function (name) {\n          var value = values[name];\n\n          if (Object(__WEBPACK_IMPORTED_MODULE_4_react__[\"isValidElement\"])(value)) {\n            var token = generateToken();\n            tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n            elements[token] = value;\n          } else {\n            tokenizedValues[name] = value;\n          }\n        });\n      }\n\n      var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n      var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n      var nodes = void 0;\n\n      var 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.split(tokenDelimiter).filter(function (part) {\n          return !!part;\n        }).map(function (part) {\n          return elements[part] || part;\n        });\n      } else {\n        nodes = [formattedMessage];\n      }\n\n      if (typeof children === 'function') {\n        return children.apply(undefined, toConsumableArray(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 __WEBPACK_IMPORTED_MODULE_4_react__[\"createElement\"].apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n    }\n  }]);\n  return FormattedMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n  intl: intlShape\n};\nFormattedMessage.defaultProps = {\n  values: {}\n};\n false ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n  values: PropTypes.object,\n  tagName: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\nvar FormattedHTMLMessage = function (_Component) {\n  inherits(FormattedHTMLMessage, _Component);\n\n  function FormattedHTMLMessage(props, context) {\n    classCallCheck(this, FormattedHTMLMessage);\n\n    var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedHTMLMessage, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate(nextProps) {\n      var values = this.props.values;\n      var nextValues = nextProps.values;\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      var nextPropsToCheck = _extends({}, nextProps, {\n        values: values\n      });\n\n      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        next[_key - 1] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatHTMLMessage = _context$intl.formatHTMLMessage,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          id = _props.id,\n          description = _props.description,\n          defaultMessage = _props.defaultMessage,\n          rawValues = _props.values,\n          _props$tagName = _props.tagName,\n          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n          children = _props.children;\n\n      var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n      var 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      var html = { __html: formattedHTMLMessage };\n      return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n    }\n  }]);\n  return FormattedHTMLMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n  intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n  values: {}\n};\n false ? void 0 : void 0;\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\naddLocaleData(defaultLocaleData);\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\naddLocaleData(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default.a);\n\n\n\n/***/ }),\n\n/***/ 690:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mastodon_ready__ = __webpack_require__(89);\n\n\n\n\n\nwindow.addEventListener('message', function (e) {\n  var data = e.data || {};\n\n  if (!window.parent || data.type !== 'setHeight') {\n    return;\n  }\n\n  Object(__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__[\"default\"])(function () {\n    window.parent.postMessage({\n      type: 'setHeight',\n      id: data.id,\n      height: document.getElementsByTagName('html')[0].scrollHeight\n    }, '*');\n  });\n});\n\nfunction main() {\n  var _require = __webpack_require__(98),\n      length = _require.length;\n\n  var IntlRelativeFormat = __webpack_require__(61).default;\n\n  var _require2 = __webpack_require__(144),\n      delegate = _require2.delegate;\n\n  var emojify = __webpack_require__(71).default;\n\n  var _require3 = __webpack_require__(7),\n      getLocale = _require3.getLocale;\n\n  var _getLocale = getLocale(),\n      localeData = _getLocale.localeData;\n\n  var VideoContainer = __webpack_require__(691).default;\n  var CardContainer = __webpack_require__(692).default;\n  var React = __webpack_require__(0);\n  var ReactDOM = __webpack_require__(20);\n\n  localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n  Object(__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__[\"default\"])(function () {\n    var locale = document.documentElement.lang;\n\n    var dateTimeFormat = new Intl.DateTimeFormat(locale, {\n      year: 'numeric',\n      month: 'long',\n      day: 'numeric',\n      hour: 'numeric',\n      minute: 'numeric'\n    });\n\n    var relativeFormat = new IntlRelativeFormat(locale);\n\n    [].forEach.call(document.querySelectorAll('.emojify'), function (content) {\n      content.innerHTML = emojify(content.innerHTML);\n    });\n\n    [].forEach.call(document.querySelectorAll('time.formatted'), function (content) {\n      var datetime = new Date(content.getAttribute('datetime'));\n      var formattedDate = dateTimeFormat.format(datetime);\n\n      content.title = formattedDate;\n      content.textContent = formattedDate;\n    });\n\n    [].forEach.call(document.querySelectorAll('time.time-ago'), function (content) {\n      var datetime = new Date(content.getAttribute('datetime'));\n\n      content.title = dateTimeFormat.format(datetime);\n      content.textContent = relativeFormat.format(datetime);\n    });\n\n    [].forEach.call(document.querySelectorAll('.logo-button'), function (content) {\n      content.addEventListener('click', function (e) {\n        e.preventDefault();\n        window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n      });\n    });\n\n    [].forEach.call(document.querySelectorAll('[data-component=\"Video\"]'), function (content) {\n      var props = JSON.parse(content.getAttribute('data-props'));\n      ReactDOM.render(React.createElement(VideoContainer, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ locale: locale }, props)), content);\n    });\n\n    [].forEach.call(document.querySelectorAll('[data-component=\"Card\"]'), function (content) {\n      var props = JSON.parse(content.getAttribute('data-props'));\n      ReactDOM.render(React.createElement(CardContainer, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ locale: locale }, props)), content);\n    });\n\n    var mediaGalleries = document.querySelectorAll('[data-component=\"MediaGallery\"]');\n\n    if (mediaGalleries.length > 0) {\n      var MediaGalleriesContainer = __webpack_require__(693).default;\n      var content = document.createElement('div');\n\n      ReactDOM.render(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(MediaGalleriesContainer, {\n        locale: locale,\n        galleries: mediaGalleries\n      }), content);\n      document.body.appendChild(content);\n    }\n  });\n\n  delegate(document, '.webapp-btn', 'click', function (_ref) {\n    var target = _ref.target,\n        button = _ref.button;\n\n    if (button !== 0) {\n      return true;\n    }\n    window.location.href = target.href;\n    return false;\n  });\n\n  delegate(document, '.status__content__spoiler-link', 'click', function (_ref2) {\n    var target = _ref2.target;\n\n    var contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n    if (contentEl.style.display === 'block') {\n      contentEl.style.display = 'none';\n      target.parentNode.style.marginBottom = 0;\n    } else {\n      contentEl.style.display = 'block';\n      target.parentNode.style.marginBottom = null;\n    }\n\n    return false;\n  });\n\n  delegate(document, '.account_display_name', 'input', function (_ref3) {\n    var target = _ref3.target;\n\n    var nameCounter = document.querySelector('.name-counter');\n\n    if (nameCounter) {\n      nameCounter.textContent = 30 - length(target.value);\n    }\n  });\n\n  delegate(document, '.account_note', 'input', function (_ref4) {\n    var target = _ref4.target;\n\n    var noteCounter = document.querySelector('.note-counter');\n\n    if (noteCounter) {\n      noteCounter.textContent = 160 - length(target.value);\n    }\n  });\n\n  delegate(document, '#account_avatar', 'change', function (_ref5) {\n    var target = _ref5.target;\n\n    var avatar = document.querySelector('.card.compact .avatar img');\n\n    var _ref6 = target.files || [],\n        file = _ref6[0];\n\n    var url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n    avatar.src = url;\n  });\n\n  delegate(document, '#account_header', 'change', function (_ref7) {\n    var target = _ref7.target;\n\n    var header = document.querySelector('.card.compact');\n\n    var _ref8 = target.files || [],\n        file = _ref8[0];\n\n    var url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n    header.style.backgroundImage = 'url(' + url + ')';\n  });\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__[\"a\" /* default */])().then(main).catch(function (error) {\n  console.error(error);\n});\n\n/***/ }),\n\n/***/ 691:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VideoContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__locales__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__features_video__ = __webpack_require__(74);\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_7__locales__[\"getLocale\"])(),\n    localeData = _getLocale.localeData,\n    messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar VideoContainer = function (_React$PureComponent) {\n  __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(VideoContainer, _React$PureComponent);\n\n  function VideoContainer() {\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, VideoContainer);\n\n    return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n  }\n\n  VideoContainer.prototype.render = function render() {\n    var _props = this.props,\n        locale = _props.locale,\n        props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['locale']);\n\n    return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"d\" /* IntlProvider */], {\n      locale: locale,\n      messages: messages\n    }, void 0, __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__features_video__[\"default\"], props));\n  };\n\n  return VideoContainer;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 692:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CardContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__features_status_components_card__ = __webpack_require__(332);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_immutable__);\n\n\n\n\n\n\n\n\n\n\nvar CardContainer = function (_React$PureComponent) {\n  __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(CardContainer, _React$PureComponent);\n\n  function CardContainer() {\n    __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, CardContainer);\n\n    return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n  }\n\n  CardContainer.prototype.render = function render() {\n    var _props = this.props,\n        card = _props.card,\n        props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['card']);\n\n    return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__features_status_components_card__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ card: Object(__WEBPACK_IMPORTED_MODULE_7_immutable__[\"fromJS\"])(card) }, props));\n  };\n\n  return CardContainer;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 693:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MediaGalleriesContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__locales__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_media_gallery__ = __webpack_require__(154);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_modal_root__ = __webpack_require__(247);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__ = __webpack_require__(248);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_immutable__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_9__locales__[\"getLocale\"])(),\n    localeData = _getLocale.localeData,\n    messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar MediaGalleriesContainer = function (_React$PureComponent) {\n  __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(MediaGalleriesContainer, _React$PureComponent);\n\n  function MediaGalleriesContainer() {\n    var _temp, _this, _ret;\n\n    __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, MediaGalleriesContainer);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.state = {\n      media: null,\n      index: null\n    }, _this.handleOpenMedia = function (media, index) {\n      document.body.classList.add('media-gallery-standalone__body');\n      _this.setState({ media: media, index: index });\n    }, _this.handleCloseMedia = function () {\n      document.body.classList.remove('media-gallery-standalone__body');\n      _this.setState({ media: null, index: null });\n    }, _temp), __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n  }\n\n  MediaGalleriesContainer.prototype.render = function render() {\n    var _this2 = this;\n\n    var _props = this.props,\n        locale = _props.locale,\n        galleries = _props.galleries;\n\n\n    return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"d\" /* IntlProvider */], {\n      locale: locale,\n      messages: messages\n    }, void 0, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Fragment, {}, void 0, [].map.call(galleries, function (gallery) {\n      var _JSON$parse = JSON.parse(gallery.getAttribute('data-props')),\n          media = _JSON$parse.media,\n          props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_JSON$parse, ['media']);\n\n      return __WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.createPortal(__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__[\"default\"], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, {\n        media: Object(__WEBPACK_IMPORTED_MODULE_13_immutable__[\"fromJS\"])(media),\n        onOpenMedia: _this2.handleOpenMedia\n      })), gallery);\n    }), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__components_modal_root__[\"a\" /* default */], {\n      onClose: this.handleCloseMedia\n    }, void 0, this.state.media === null || this.state.index === null ? null : __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__[\"a\" /* default */], {\n      media: this.state.media,\n      index: this.state.index,\n      onClose: this.handleCloseMedia\n    }))));\n  };\n\n  return MediaGalleriesContainer;\n}(__WEBPACK_IMPORTED_MODULE_6_react___default.a.PureComponent);\n\n\n\n/***/ })\n\n},[690]);\n\n\n// WEBPACK FOOTER //\n// public.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { is } from 'immutable';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { isIOS } from '../is_mobile';\nimport classNames from 'classnames';\nimport { autoPlayGif, displaySensitiveMedia } from '../initial_state';\n\nconst messages = defineMessages({\n  toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },\n});\n\nclass Item extends React.PureComponent {\n\n  static propTypes = {\n    attachment: ImmutablePropTypes.map.isRequired,\n    standalone: PropTypes.bool,\n    index: PropTypes.number.isRequired,\n    size: PropTypes.number.isRequired,\n    onClick: PropTypes.func.isRequired,\n  };\n\n  static defaultProps = {\n    standalone: false,\n    index: 0,\n    size: 1,\n  };\n\n  handleMouseEnter = (e) => {\n    if (this.hoverToPlay()) {\n      e.target.play();\n    }\n  }\n\n  handleMouseLeave = (e) => {\n    if (this.hoverToPlay()) {\n      e.target.pause();\n      e.target.currentTime = 0;\n    }\n  }\n\n  hoverToPlay () {\n    const { attachment } = this.props;\n    return !autoPlayGif && attachment.get('type') === 'gifv';\n  }\n\n  handleClick = (e) => {\n    const { index, onClick } = this.props;\n\n    if (e.button === 0) {\n      e.preventDefault();\n      onClick(index);\n    }\n\n    e.stopPropagation();\n  }\n\n  render () {\n    const { attachment, index, size, standalone } = this.props;\n\n    let width  = 50;\n    let height = 100;\n    let top    = 'auto';\n    let left   = 'auto';\n    let bottom = 'auto';\n    let right  = 'auto';\n\n    if (size === 1) {\n      width = 100;\n    }\n\n    if (size === 4 || (size === 3 && index > 0)) {\n      height = 50;\n    }\n\n    if (size === 2) {\n      if (index === 0) {\n        right = '2px';\n      } else {\n        left = '2px';\n      }\n    } else if (size === 3) {\n      if (index === 0) {\n        right = '2px';\n      } else if (index > 0) {\n        left = '2px';\n      }\n\n      if (index === 1) {\n        bottom = '2px';\n      } else if (index > 1) {\n        top = '2px';\n      }\n    } else if (size === 4) {\n      if (index === 0 || index === 2) {\n        right = '2px';\n      }\n\n      if (index === 1 || index === 3) {\n        left = '2px';\n      }\n\n      if (index < 2) {\n        bottom = '2px';\n      } else {\n        top = '2px';\n      }\n    }\n\n    let thumbnail = '';\n\n    if (attachment.get('type') === 'image') {\n      const previewUrl   = attachment.get('preview_url');\n      const previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n      const originalUrl    = attachment.get('url');\n      const originalWidth  = attachment.getIn(['meta', 'original', 'width']);\n\n      const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n      const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null;\n      const sizes  = hasSize ? `(min-width: 1025px) ${320 * (width / 100)}px, ${width}vw` : null;\n\n      const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n      const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n      const x      = ((focusX /  2) + .5) * 100;\n      const y      = ((focusY / -2) + .5) * 100;\n\n      thumbnail = (\n        <a\n          className='media-gallery__item-thumbnail'\n          href={attachment.get('remote_url') || originalUrl}\n          onClick={this.handleClick}\n          target='_blank'\n        >\n          <img\n            src={previewUrl}\n            srcSet={srcSet}\n            sizes={sizes}\n            alt={attachment.get('description')}\n            title={attachment.get('description')}\n            style={{ objectPosition: `${x}% ${y}%` }}\n          />\n        </a>\n      );\n    } else if (attachment.get('type') === 'gifv') {\n      const autoPlay = !isIOS() && autoPlayGif;\n\n      thumbnail = (\n        <div className={classNames('media-gallery__gifv', { autoplay: autoPlay })}>\n          <video\n            className='media-gallery__item-gifv-thumbnail'\n            aria-label={attachment.get('description')}\n            role='application'\n            src={attachment.get('url')}\n            onClick={this.handleClick}\n            onMouseEnter={this.handleMouseEnter}\n            onMouseLeave={this.handleMouseLeave}\n            autoPlay={autoPlay}\n            loop\n            muted\n          />\n\n          <span className='media-gallery__gifv__label'>GIF</span>\n        </div>\n      );\n    }\n\n    return (\n      <div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ left: left, top: top, right: right, bottom: bottom, width: `${width}%`, height: `${height}%` }}>\n        {thumbnail}\n      </div>\n    );\n  }\n\n}\n\n@injectIntl\nexport default class MediaGallery extends React.PureComponent {\n\n  static propTypes = {\n    sensitive: PropTypes.bool,\n    standalone: PropTypes.bool,\n    media: ImmutablePropTypes.list.isRequired,\n    size: PropTypes.object,\n    height: PropTypes.number.isRequired,\n    onOpenMedia: PropTypes.func.isRequired,\n    intl: PropTypes.object.isRequired,\n  };\n\n  static defaultProps = {\n    standalone: false,\n  };\n\n  state = {\n    visible: !this.props.sensitive || displaySensitiveMedia,\n  };\n\n  componentWillReceiveProps (nextProps) {\n    if (!is(nextProps.media, this.props.media)) {\n      this.setState({ visible: !nextProps.sensitive });\n    }\n  }\n\n  handleOpen = () => {\n    this.setState({ visible: !this.state.visible });\n  }\n\n  handleClick = (index) => {\n    this.props.onOpenMedia(this.props.media, index);\n  }\n\n  handleRef = (node) => {\n    if (node /*&& this.isStandaloneEligible()*/) {\n      // offsetWidth triggers a layout, so only calculate when we need to\n      this.setState({\n        width: node.offsetWidth,\n      });\n    }\n  }\n\n  isStandaloneEligible() {\n    const { media, standalone } = this.props;\n    return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n  }\n\n  render () {\n    const { media, intl, sensitive, height } = this.props;\n    const { width, visible } = this.state;\n\n    let children;\n\n    const style = {};\n\n    if (this.isStandaloneEligible()) {\n      if (width) {\n        style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n      }\n    } else if (width) {\n      style.height = width / (16/9);\n    } else {\n      style.height = height;\n    }\n\n    if (!visible) {\n      let warning;\n\n      if (sensitive) {\n        warning = <FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' />;\n      } else {\n        warning = <FormattedMessage id='status.media_hidden' defaultMessage='Media hidden' />;\n      }\n\n      children = (\n        <button type='button' className='media-spoiler' onClick={this.handleOpen} style={style} ref={this.handleRef}>\n          <span className='media-spoiler__warning'>{warning}</span>\n          <span className='media-spoiler__trigger'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span>\n        </button>\n      );\n    } else {\n      const size = media.take(4).size;\n\n      if (this.isStandaloneEligible()) {\n        children = <Item standalone onClick={this.handleClick} attachment={media.get(0)} />;\n      } else {\n        children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} onClick={this.handleClick} attachment={attachment} index={i} size={size} />);\n      }\n    }\n\n    return (\n      <div className='media-gallery' style={style} ref={this.handleRef}>\n        <div className={classNames('spoiler-button', { 'spoiler-button--visible': visible })}>\n          <IconButton title={intl.formatMessage(messages.toggle_visible)} icon={visible ? 'eye' : 'eye-slash'} overlay onClick={this.handleOpen} />\n        </div>\n\n        {children}\n      </div>\n    );\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/media_gallery.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Immutable from 'immutable';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport punycode from 'punycode';\nimport classnames from 'classnames';\n\nconst IDNA_PREFIX = 'xn--';\n\nconst decodeIDNA = domain => {\n  return domain\n    .split('.')\n    .map(part => part.indexOf(IDNA_PREFIX) === 0 ? punycode.decode(part.slice(IDNA_PREFIX.length)) : part)\n    .join('.');\n};\n\nconst getHostname = url => {\n  const parser = document.createElement('a');\n  parser.href = url;\n  return parser.hostname;\n};\n\nconst trim = (text, len) => {\n  const cut = text.indexOf(' ', len);\n\n  if (cut === -1) {\n    return text;\n  }\n\n  return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nconst domParser = new DOMParser();\n\nconst addAutoPlay = html => {\n  const document = domParser.parseFromString(html, 'text/html').documentElement;\n  const iframe = document.querySelector('iframe');\n\n  if (iframe) {\n    if (iframe.src.indexOf('?') !== -1) {\n      iframe.src += '&';\n    } else {\n      iframe.src += '?';\n    }\n\n    iframe.src += 'autoplay=1&auto_play=1';\n\n    // DOM parser creates html/body elements around original HTML fragment,\n    // so we need to get innerHTML out of the body and not the entire document\n    return document.querySelector('body').innerHTML;\n  }\n\n  return html;\n};\n\nexport default class Card extends React.PureComponent {\n\n  static propTypes = {\n    card: ImmutablePropTypes.map,\n    maxDescription: PropTypes.number,\n    onOpenMedia: PropTypes.func.isRequired,\n  };\n\n  static defaultProps = {\n    maxDescription: 50,\n  };\n\n  state = {\n    width: 280,\n    embedded: false,\n  };\n\n  componentWillReceiveProps (nextProps) {\n    if (this.props.card !== nextProps.card) {\n      this.setState({ embedded: false });\n    }\n  }\n\n  handlePhotoClick = () => {\n    const { card, onOpenMedia } = this.props;\n\n    onOpenMedia(\n      Immutable.fromJS([\n        {\n          type: 'image',\n          url: card.get('embed_url'),\n          description: card.get('title'),\n          meta: {\n            original: {\n              width: card.get('width'),\n              height: card.get('height'),\n            },\n          },\n        },\n      ]),\n      0\n    );\n  };\n\n  handleEmbedClick = () => {\n    const { card } = this.props;\n\n    if (card.get('type') === 'photo') {\n      this.handlePhotoClick();\n    } else {\n      this.setState({ embedded: true });\n    }\n  }\n\n  setRef = c => {\n    if (c) {\n      this.setState({ width: c.offsetWidth });\n    }\n  }\n\n  renderVideo () {\n    const { card }  = this.props;\n    const content   = { __html: addAutoPlay(card.get('html')) };\n    const { width } = this.state;\n    const ratio     = card.get('width') / card.get('height');\n    const height    = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n    return (\n      <div\n        ref={this.setRef}\n        className='status-card__image status-card-video'\n        dangerouslySetInnerHTML={content}\n        style={{ height }}\n      />\n    );\n  }\n\n  render () {\n    const { card, maxDescription } = this.props;\n    const { width, embedded }      = this.state;\n\n    if (card === null) {\n      return null;\n    }\n\n    const provider    = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n    const horizontal  = card.get('width') > card.get('height') && (card.get('width') + 100 >= width) || card.get('type') !== 'link';\n    const className   = classnames('status-card', { horizontal });\n    const interactive = card.get('type') !== 'link';\n    const title       = interactive ? <a className='status-card__title' href={card.get('url')} title={card.get('title')} rel='noopener' target='_blank'><strong>{card.get('title')}</strong></a> : <strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>;\n    const ratio       = card.get('width') / card.get('height');\n    const height      = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n    const description = (\n      <div className='status-card__content'>\n        {title}\n        {!horizontal && <p className='status-card__description'>{trim(card.get('description') || '', maxDescription)}</p>}\n        <span className='status-card__host'>{provider}</span>\n      </div>\n    );\n\n    let embed     = '';\n    let thumbnail = <div style={{ backgroundImage: `url(${card.get('image')})`, width: horizontal ? width : null, height: horizontal ? height : null }} className='status-card__image-image' />;\n\n    if (interactive) {\n      if (embedded) {\n        embed = this.renderVideo();\n      } else {\n        let iconVariant = 'play';\n\n        if (card.get('type') === 'photo') {\n          iconVariant = 'search-plus';\n        }\n\n        embed = (\n          <div className='status-card__image'>\n            {thumbnail}\n\n            <div className='status-card__actions'>\n              <div>\n                <button onClick={this.handleEmbedClick}><i className={`fa fa-${iconVariant}`} /></button>\n                <a href={card.get('url')} target='_blank' rel='noopener'><i className='fa fa-external-link' /></a>\n              </div>\n            </div>\n          </div>\n        );\n      }\n\n      return (\n        <div className={className} ref={this.setRef}>\n          {embed}\n          {description}\n        </div>\n      );\n    } else if (card.get('image')) {\n      embed = (\n        <div className='status-card__image'>\n          {thumbnail}\n        </div>\n      );\n    }\n\n    return (\n      <a href={card.get('url')} className={className} target='_blank' rel='noopener' ref={this.setRef}>\n        {embed}\n        {description}\n      </a>\n    );\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/components/card.js","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/node-libs-browser/node_modules/punycode/punycode.js","/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport allLocaleData from '../locale-data/index.js';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport PropTypes from 'prop-types';\nimport React, { Children, Component, createElement, isValidElement } from 'react';\nimport invariant from 'invariant';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n    var s = String(n).split(\".\"),\n        v0 = !s[1],\n        t0 = Number(s[0]) == n,\n        n10 = t0 && s[0].slice(-1),\n        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  }, \"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\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n  var locales = Array.isArray(data) ? data : [data];\n\n  locales.forEach(function (localeData) {\n    if (localeData && localeData.locale) {\n      IntlMessageFormat.__addLocaleData(localeData);\n      IntlRelativeFormat.__addLocaleData(localeData);\n    }\n  });\n}\n\nfunction hasLocaleData(locale) {\n  var 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  var normalizedLocale = locale && locale.toLowerCase();\n\n  return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n  return typeof obj;\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n  var target = {};\n\n  for (var i in obj) {\n    if (keys.indexOf(i) >= 0) continue;\n    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n    target[i] = obj[i];\n  }\n\n  return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  } else {\n    return Array.from(arr);\n  }\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\nvar bool = PropTypes.bool;\nvar number = PropTypes.number;\nvar string = PropTypes.string;\nvar func = PropTypes.func;\nvar object = PropTypes.object;\nvar oneOf = PropTypes.oneOf;\nvar shape = PropTypes.shape;\nvar any = PropTypes.any;\nvar oneOfType = PropTypes.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n  locale: string,\n  formats: object,\n  messages: object,\n  textComponent: any,\n\n  defaultLocale: string,\n  defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n  formatDate: funcReq,\n  formatTime: funcReq,\n  formatRelative: funcReq,\n  formatNumber: funcReq,\n  formatPlural: funcReq,\n  formatMessage: funcReq,\n  formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n  formatters: object,\n  now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n  id: string.isRequired,\n  description: oneOfType([string, object]),\n  defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n  localeMatcher: 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\nvar numberFormatPropTypes = {\n  localeMatcher: 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\nvar relativeFormatPropTypes = {\n  style: oneOf(['best fit', 'numeric']),\n  units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n  style: oneOf(['cardinal', 'ordinal'])\n};\n\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\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n  '&': '&amp;',\n  '>': '&gt;',\n  '<': '&lt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n  return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n    return ESCAPED_CHARS[match];\n  });\n}\n\nfunction filterProps(props, whitelist) {\n  var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  return whitelist.reduce(function (filtered, name) {\n    if (props.hasOwnProperty(name)) {\n      filtered[name] = props[name];\n    } else if (defaults$$1.hasOwnProperty(name)) {\n      filtered[name] = defaults$$1[name];\n    }\n\n    return filtered;\n  }, {});\n}\n\nfunction invariantIntlContext() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      intl = _ref.intl;\n\n  invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n\n  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var 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  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n  for (var 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\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n  var props = _ref2.props,\n      state = _ref2.state,\n      _ref2$context = _ref2.context,\n      context = _ref2$context === undefined ? {} : _ref2$context;\n  var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var _context$intl = context.intl,\n      intl = _context$intl === undefined ? {} : _context$intl;\n  var _nextContext$intl = nextContext.intl,\n      nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n  return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\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\nfunction getDisplayName(Component$$1) {\n  return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _options$intlPropName = options.intlPropName,\n      intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n      _options$withRef = options.withRef,\n      withRef = _options$withRef === undefined ? false : _options$withRef;\n\n  var InjectIntl = function (_Component) {\n    inherits(InjectIntl, _Component);\n\n    function InjectIntl(props, context) {\n      classCallCheck(this, InjectIntl);\n\n      var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n      invariantIntlContext(context);\n      return _this;\n    }\n\n    createClass(InjectIntl, [{\n      key: 'getWrappedInstance',\n      value: function getWrappedInstance() {\n        invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n        return this.refs.wrappedInstance;\n      }\n    }, {\n      key: 'render',\n      value: function render() {\n        return React.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n          ref: withRef ? 'wrappedInstance' : null\n        }));\n      }\n    }]);\n    return InjectIntl;\n  }(Component);\n\n  InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n  InjectIntl.contextTypes = {\n    intl: intlShape\n  };\n  InjectIntl.WrappedComponent = WrappedComponent;\n\n\n  return InjectIntl;\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\nfunction 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/*\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\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\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  classCallCheck(this, IntlPluralFormat);\n\n  var useOrdinal = options.style === 'ordinal';\n  var pluralFn = findPluralFunction(resolveLocale(locales));\n\n  this.format = function (value) {\n    return pluralFn(value, useOrdinal);\n  };\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\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar 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  var thresholds = IntlRelativeFormat.thresholds;\n  thresholds.second = newThresholds.second;\n  thresholds.minute = newThresholds.minute;\n  thresholds.hour = newThresholds.hour;\n  thresholds.day = newThresholds.day;\n  thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n  var format = formats && formats[type] && formats[type][name];\n  if (format) {\n    return format;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    console.error('[React Intl] No ' + type + ' format named: ' + name);\n  }\n}\n\nfunction formatDate(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n\n  var date = new Date(value);\n  var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n  try {\n    return state.getDateTimeFormat(locale, filteredOptions).format(date);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Error formatting date.\\n' + e);\n    }\n  }\n\n  return String(date);\n}\n\nfunction formatTime(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n\n  var date = new Date(value);\n  var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n  if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n    // Add default formatting options if hour, minute, or second isn't defined.\n    filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n  }\n\n  try {\n    return state.getDateTimeFormat(locale, filteredOptions).format(date);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Error formatting time.\\n' + e);\n    }\n  }\n\n  return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n\n  var date = new Date(value);\n  var now = new Date(options.now);\n  var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n  var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n  // Capture the current threshold values, then temporarily override them with\n  // specific values just for this render.\n  var oldThresholds = _extends({}, 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    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Error formatting relative time.\\n' + e);\n    }\n  } finally {\n    updateRelativeFormatThresholds(oldThresholds);\n  }\n\n  return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats;\n  var format = options.format;\n\n\n  var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n  var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n  try {\n    return state.getNumberFormat(locale, filteredOptions).format(value);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Error formatting number.\\n' + e);\n    }\n  }\n\n  return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale;\n\n\n  var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n  try {\n    return state.getPluralFormat(locale, filteredOptions).format(value);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Error formatting plural.\\n' + e);\n    }\n  }\n\n  return 'other';\n}\n\nfunction formatMessage(config, state) {\n  var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var locale = config.locale,\n      formats = config.formats,\n      messages = config.messages,\n      defaultLocale = config.defaultLocale,\n      defaultFormats = config.defaultFormats;\n  var id = messageDescriptor.id,\n      defaultMessage = messageDescriptor.defaultMessage;\n\n  // `id` is a required field of a Message Descriptor.\n\n  invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n  var message = messages && messages[id];\n  var 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  var formattedMessage = void 0;\n\n  if (message) {\n    try {\n      var formatter = state.getMessageFormat(message, locale, formats);\n\n      formattedMessage = formatter.format(values);\n    } catch (e) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n      }\n    }\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      // This prevents warnings from littering the console in development\n      // when no `messages` are passed into the <IntlProvider> for the\n      // default locale, and a default message is in the source.\n      if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n        console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n      }\n    }\n  }\n\n  if (!formattedMessage && defaultMessage) {\n    try {\n      var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n      formattedMessage = _formatter.format(values);\n    } catch (e) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n      }\n    }\n  }\n\n  if (!formattedMessage) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n    }\n  }\n\n  return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n  var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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  var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n    var 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\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\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\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar 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 <IntlProvider> ancestor.\nvar defaultProps = {\n  formats: {},\n  messages: {},\n  textComponent: 'span',\n\n  defaultLocale: 'en',\n  defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n  inherits(IntlProvider, _Component);\n\n  function IntlProvider(props) {\n    var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    classCallCheck(this, IntlProvider);\n\n    var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n    invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n    var intlContext = context.intl;\n\n    // Used to stabilize time when performing an initial rendering so that\n    // all relative times use the same reference \"now\" time.\n\n    var initialNow = void 0;\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      // <IntlProvider> 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    // `<IntlProvider>`, 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\n    var _ref = intlContext || {},\n        _ref$formatters = _ref.formatters,\n        formatters = _ref$formatters === undefined ? {\n      getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n      getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n      getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n      getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n      getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n    } : _ref$formatters;\n\n    _this.state = _extends({}, formatters, {\n\n      // Wrapper to provide stable \"now\" time for initial render.\n      now: function now() {\n        return _this._didDisplay ? Date.now() : initialNow;\n      }\n    });\n    return _this;\n  }\n\n  createClass(IntlProvider, [{\n    key: 'getConfig',\n    value: function getConfig() {\n      var intlContext = this.context.intl;\n\n      // Build a whitelisted config object from `props`, defaults, and\n      // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n      var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n      // Apply default props. This must be applied last after the props have\n      // been resolved and inherited from any <IntlProvider> in the ancestry.\n      // This matches how React resolves `defaultProps`.\n      for (var propName in defaultProps) {\n        if (config[propName] === undefined) {\n          config[propName] = defaultProps[propName];\n        }\n      }\n\n      if (!hasLocaleData(config.locale)) {\n        var _config = config,\n            locale = _config.locale,\n            defaultLocale = _config.defaultLocale,\n            defaultFormats = _config.defaultFormats;\n\n\n        if (process.env.NODE_ENV !== 'production') {\n          console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\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 <FormattedMessage> contains a `defaultMessage` prop.\n        config = _extends({}, config, {\n          locale: defaultLocale,\n          formats: defaultFormats,\n          messages: defaultProps.messages\n        });\n      }\n\n      return config;\n    }\n  }, {\n    key: 'getBoundFormatFns',\n    value: function getBoundFormatFns(config, state) {\n      return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n        boundFormatFns[name] = format[name].bind(null, config, state);\n        return boundFormatFns;\n      }, {});\n    }\n  }, {\n    key: 'getChildContext',\n    value: function getChildContext() {\n      var config = this.getConfig();\n\n      // Bind intl factories and current config to the format functions.\n      var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n      var _state = this.state,\n          now = _state.now,\n          formatters = objectWithoutProperties(_state, ['now']);\n\n\n      return {\n        intl: _extends({}, config, boundFormatFns, {\n          formatters: formatters,\n          now: now\n        })\n      };\n    }\n  }, {\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this._didDisplay = true;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      return Children.only(this.props.children);\n    }\n  }]);\n  return IntlProvider;\n}(Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n  intl: intlShape\n};\nIntlProvider.childContextTypes = {\n  intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n  children: PropTypes.element.isRequired,\n  initialNow: PropTypes.any\n}) : void 0;\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\nvar FormattedDate = function (_Component) {\n  inherits(FormattedDate, _Component);\n\n  function FormattedDate(props, context) {\n    classCallCheck(this, FormattedDate);\n\n    var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedDate, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatDate = _context$intl.formatDate,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n\n      var formattedDate = formatDate(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedDate);\n      }\n\n      return React.createElement(\n        Text,\n        null,\n        formattedDate\n      );\n    }\n  }]);\n  return FormattedDate;\n}(Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n  intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n  value: PropTypes.any.isRequired,\n  format: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\nvar FormattedTime = function (_Component) {\n  inherits(FormattedTime, _Component);\n\n  function FormattedTime(props, context) {\n    classCallCheck(this, FormattedTime);\n\n    var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedTime, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatTime = _context$intl.formatTime,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n\n      var formattedTime = formatTime(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedTime);\n      }\n\n      return React.createElement(\n        Text,\n        null,\n        formattedTime\n      );\n    }\n  }]);\n  return FormattedTime;\n}(Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n  intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n  value: PropTypes.any.isRequired,\n  format: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n  var 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  var aTime = new Date(a).getTime();\n  var bTime = new Date(b).getTime();\n\n  return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n  inherits(FormattedRelative, _Component);\n\n  function FormattedRelative(props, context) {\n    classCallCheck(this, FormattedRelative);\n\n    var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n    invariantIntlContext(context);\n\n    var now = isFinite(props.initialNow) ? Number(props.initialNow) : 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: now };\n    return _this;\n  }\n\n  createClass(FormattedRelative, [{\n    key: 'scheduleNextUpdate',\n    value: function scheduleNextUpdate(props, state) {\n      var _this2 = this;\n\n      // Cancel and pending update because we're scheduling a new update.\n      clearTimeout(this._timer);\n\n      var value = props.value,\n          units = props.units,\n          updateInterval = props.updateInterval;\n\n      var 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      var delta = time - state.now;\n      var unitDelay = getUnitDelay(units || selectUnits(delta));\n      var 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      var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n      this._timer = setTimeout(function () {\n        _this2.setState({ now: _this2.context.intl.now() });\n      }, delay);\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this.scheduleNextUpdate(this.props, this.state);\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(_ref) {\n      var nextValue = _ref.value;\n\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    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'componentWillUpdate',\n    value: function componentWillUpdate(nextProps, nextState) {\n      this.scheduleNextUpdate(nextProps, nextState);\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      clearTimeout(this._timer);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatRelative = _context$intl.formatRelative,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n\n      var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n      if (typeof children === 'function') {\n        return children(formattedRelative);\n      }\n\n      return React.createElement(\n        Text,\n        null,\n        formattedRelative\n      );\n    }\n  }]);\n  return FormattedRelative;\n}(Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n  intl: intlShape\n};\nFormattedRelative.defaultProps = {\n  updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n  value: PropTypes.any.isRequired,\n  format: PropTypes.string,\n  updateInterval: PropTypes.number,\n  initialNow: PropTypes.any,\n  children: PropTypes.func\n}) : void 0;\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\nvar FormattedNumber = function (_Component) {\n  inherits(FormattedNumber, _Component);\n\n  function FormattedNumber(props, context) {\n    classCallCheck(this, FormattedNumber);\n\n    var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedNumber, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatNumber = _context$intl.formatNumber,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          children = _props.children;\n\n\n      var formattedNumber = formatNumber(value, this.props);\n\n      if (typeof children === 'function') {\n        return children(formattedNumber);\n      }\n\n      return React.createElement(\n        Text,\n        null,\n        formattedNumber\n      );\n    }\n  }]);\n  return FormattedNumber;\n}(Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n  intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n  value: PropTypes.any.isRequired,\n  format: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\nvar FormattedPlural = function (_Component) {\n  inherits(FormattedPlural, _Component);\n\n  function FormattedPlural(props, context) {\n    classCallCheck(this, FormattedPlural);\n\n    var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedPlural, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate() {\n      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n        next[_key] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatPlural = _context$intl.formatPlural,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          value = _props.value,\n          other = _props.other,\n          children = _props.children;\n\n\n      var pluralCategory = formatPlural(value, this.props);\n      var formattedPlural = this.props[pluralCategory] || other;\n\n      if (typeof children === 'function') {\n        return children(formattedPlural);\n      }\n\n      return React.createElement(\n        Text,\n        null,\n        formattedPlural\n      );\n    }\n  }]);\n  return FormattedPlural;\n}(Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n  intl: intlShape\n};\nFormattedPlural.defaultProps = {\n  style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, 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}) : void 0;\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\nvar FormattedMessage = function (_Component) {\n  inherits(FormattedMessage, _Component);\n\n  function FormattedMessage(props, context) {\n    classCallCheck(this, FormattedMessage);\n\n    var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedMessage, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate(nextProps) {\n      var values = this.props.values;\n      var nextValues = nextProps.values;\n\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      var nextPropsToCheck = _extends({}, nextProps, {\n        values: values\n      });\n\n      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        next[_key - 1] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatMessage = _context$intl.formatMessage,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          id = _props.id,\n          description = _props.description,\n          defaultMessage = _props.defaultMessage,\n          values = _props.values,\n          _props$tagName = _props.tagName,\n          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n          children = _props.children;\n\n\n      var tokenDelimiter = void 0;\n      var tokenizedValues = void 0;\n      var elements = void 0;\n\n      var 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        var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n        var generateToken = function () {\n          var counter = 0;\n          return function () {\n            return 'ELEMENT-' + uid + '-' + (counter += 1);\n          };\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(function (name) {\n          var value = values[name];\n\n          if (isValidElement(value)) {\n            var token = generateToken();\n            tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n            elements[token] = value;\n          } else {\n            tokenizedValues[name] = value;\n          }\n        });\n      }\n\n      var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n      var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n      var nodes = void 0;\n\n      var 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.split(tokenDelimiter).filter(function (part) {\n          return !!part;\n        }).map(function (part) {\n          return elements[part] || part;\n        });\n      } else {\n        nodes = [formattedMessage];\n      }\n\n      if (typeof children === 'function') {\n        return children.apply(undefined, toConsumableArray(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.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n    }\n  }]);\n  return FormattedMessage;\n}(Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n  intl: intlShape\n};\nFormattedMessage.defaultProps = {\n  values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n  values: PropTypes.object,\n  tagName: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\nvar FormattedHTMLMessage = function (_Component) {\n  inherits(FormattedHTMLMessage, _Component);\n\n  function FormattedHTMLMessage(props, context) {\n    classCallCheck(this, FormattedHTMLMessage);\n\n    var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n    invariantIntlContext(context);\n    return _this;\n  }\n\n  createClass(FormattedHTMLMessage, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate(nextProps) {\n      var values = this.props.values;\n      var nextValues = nextProps.values;\n\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      var nextPropsToCheck = _extends({}, nextProps, {\n        values: values\n      });\n\n      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        next[_key - 1] = arguments[_key];\n      }\n\n      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _context$intl = this.context.intl,\n          formatHTMLMessage = _context$intl.formatHTMLMessage,\n          Text = _context$intl.textComponent;\n      var _props = this.props,\n          id = _props.id,\n          description = _props.description,\n          defaultMessage = _props.defaultMessage,\n          rawValues = _props.values,\n          _props$tagName = _props.tagName,\n          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n          children = _props.children;\n\n\n      var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n      var 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      var html = { __html: formattedHTMLMessage };\n      return React.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n    }\n  }]);\n  return FormattedHTMLMessage;\n}(Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n  intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n  values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n  values: PropTypes.object,\n  tagName: PropTypes.string,\n  children: PropTypes.func\n}) : void 0;\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\naddLocaleData(defaultLocaleData);\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\naddLocaleData(allLocaleData);\n\nexport { addLocaleData, intlShape, injectIntl, defineMessages, IntlProvider, FormattedDate, FormattedTime, FormattedRelative, FormattedNumber, FormattedPlural, FormattedMessage, FormattedHTMLMessage };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-intl/lib/index.es.js","import loadPolyfills from '../mastodon/load_polyfills';\nimport ready from '../mastodon/ready';\n\nwindow.addEventListener('message', e => {\n  const data = e.data || {};\n\n  if (!window.parent || data.type !== 'setHeight') {\n    return;\n  }\n\n  ready(() => {\n    window.parent.postMessage({\n      type: 'setHeight',\n      id: data.id,\n      height: document.getElementsByTagName('html')[0].scrollHeight,\n    }, '*');\n  });\n});\n\nfunction main() {\n  const { length } = require('stringz');\n  const IntlRelativeFormat = require('intl-relativeformat').default;\n  const { delegate } = require('rails-ujs');\n  const emojify = require('../mastodon/features/emoji/emoji').default;\n  const { getLocale } = require('../mastodon/locales');\n  const { localeData } = getLocale();\n  const VideoContainer = require('../mastodon/containers/video_container').default;\n  const CardContainer = require('../mastodon/containers/card_container').default;\n  const React = require('react');\n  const ReactDOM = require('react-dom');\n\n  localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n  ready(() => {\n    const locale = document.documentElement.lang;\n\n    const dateTimeFormat = new Intl.DateTimeFormat(locale, {\n      year: 'numeric',\n      month: 'long',\n      day: 'numeric',\n      hour: 'numeric',\n      minute: 'numeric',\n    });\n\n    const relativeFormat = new IntlRelativeFormat(locale);\n\n    [].forEach.call(document.querySelectorAll('.emojify'), (content) => {\n      content.innerHTML = emojify(content.innerHTML);\n    });\n\n    [].forEach.call(document.querySelectorAll('time.formatted'), (content) => {\n      const datetime = new Date(content.getAttribute('datetime'));\n      const formattedDate = dateTimeFormat.format(datetime);\n\n      content.title = formattedDate;\n      content.textContent = formattedDate;\n    });\n\n    [].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {\n      const datetime = new Date(content.getAttribute('datetime'));\n\n      content.title = dateTimeFormat.format(datetime);\n      content.textContent = relativeFormat.format(datetime);\n    });\n\n    [].forEach.call(document.querySelectorAll('.logo-button'), (content) => {\n      content.addEventListener('click', (e) => {\n        e.preventDefault();\n        window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n      });\n    });\n\n    [].forEach.call(document.querySelectorAll('[data-component=\"Video\"]'), (content) => {\n      const props = JSON.parse(content.getAttribute('data-props'));\n      ReactDOM.render(<VideoContainer locale={locale} {...props} />, content);\n    });\n\n    [].forEach.call(document.querySelectorAll('[data-component=\"Card\"]'), (content) => {\n      const props = JSON.parse(content.getAttribute('data-props'));\n      ReactDOM.render(<CardContainer locale={locale} {...props} />, content);\n    });\n\n    const mediaGalleries = document.querySelectorAll('[data-component=\"MediaGallery\"]');\n\n    if (mediaGalleries.length > 0) {\n      const MediaGalleriesContainer = require('../mastodon/containers/media_galleries_container').default;\n      const content = document.createElement('div');\n\n      ReactDOM.render(<MediaGalleriesContainer locale={locale} galleries={mediaGalleries} />, content);\n      document.body.appendChild(content);\n    }\n  });\n\n  delegate(document, '.webapp-btn', 'click', ({ target, button }) => {\n    if (button !== 0) {\n      return true;\n    }\n    window.location.href = target.href;\n    return false;\n  });\n\n  delegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {\n    const contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n    if (contentEl.style.display === 'block') {\n      contentEl.style.display = 'none';\n      target.parentNode.style.marginBottom = 0;\n    } else {\n      contentEl.style.display = 'block';\n      target.parentNode.style.marginBottom = null;\n    }\n\n    return false;\n  });\n\n  delegate(document, '.account_display_name', 'input', ({ target }) => {\n    const nameCounter = document.querySelector('.name-counter');\n\n    if (nameCounter) {\n      nameCounter.textContent = 30 - length(target.value);\n    }\n  });\n\n  delegate(document, '.account_note', 'input', ({ target }) => {\n    const noteCounter = document.querySelector('.note-counter');\n\n    if (noteCounter) {\n      noteCounter.textContent = 160 - length(target.value);\n    }\n  });\n\n  delegate(document, '#account_avatar', 'change', ({ target }) => {\n    const avatar = document.querySelector('.card.compact .avatar img');\n    const [file] = target.files || [];\n    const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n    avatar.src = url;\n  });\n\n  delegate(document, '#account_header', 'change', ({ target }) => {\n    const header = document.querySelector('.card.compact');\n    const [file] = target.files || [];\n    const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n    header.style.backgroundImage = `url(${url})`;\n  });\n}\n\nloadPolyfills().then(main).catch(error => {\n  console.error(error);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/packs/public.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport Video from '../features/video';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nexport default class VideoContainer extends React.PureComponent {\n\n  static propTypes = {\n    locale: PropTypes.string.isRequired,\n  };\n\n  render () {\n    const { locale, ...props } = this.props;\n\n    return (\n      <IntlProvider locale={locale} messages={messages}>\n        <Video {...props} />\n      </IntlProvider>\n    );\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/video_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Card from '../features/status/components/card';\nimport { fromJS } from 'immutable';\n\nexport default class CardContainer extends React.PureComponent {\n\n  static propTypes = {\n    locale: PropTypes.string,\n    card: PropTypes.array.isRequired,\n  };\n\n  render () {\n    const { card, ...props } = this.props;\n    return <Card card={fromJS(card)} {...props} />;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/card_container.js","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport MediaGallery from '../components/media_gallery';\nimport ModalRoot from '../components/modal_root';\nimport MediaModal from '../features/ui/components/media_modal';\nimport { fromJS } from 'immutable';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nexport default class MediaGalleriesContainer extends React.PureComponent {\n\n  static propTypes = {\n    locale: PropTypes.string.isRequired,\n    galleries: PropTypes.object.isRequired,\n  };\n\n  state = {\n    media: null,\n    index: null,\n  };\n\n  handleOpenMedia = (media, index) => {\n    document.body.classList.add('media-gallery-standalone__body');\n    this.setState({ media, index });\n  }\n\n  handleCloseMedia = () => {\n    document.body.classList.remove('media-gallery-standalone__body');\n    this.setState({ media: null, index: null });\n  }\n\n  render () {\n    const { locale, galleries } = this.props;\n\n    return (\n      <IntlProvider locale={locale} messages={messages}>\n        <React.Fragment>\n          {[].map.call(galleries, gallery => {\n            const { media, ...props } = JSON.parse(gallery.getAttribute('data-props'));\n\n            return ReactDOM.createPortal(\n              <MediaGallery\n                {...props}\n                media={fromJS(media)}\n                onOpenMedia={this.handleOpenMedia}\n              />,\n              gallery\n            );\n          })}\n          <ModalRoot onClose={this.handleCloseMedia}>\n            {this.state.media === null || this.state.index === null ? null : (\n              <MediaModal\n                media={this.state.media}\n                index={this.state.index}\n                onClose={this.handleCloseMedia}\n              />\n            )}\n          </ModalRoot>\n        </React.Fragment>\n      </IntlProvider>\n    );\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/media_galleries_container.js"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///public.js","webpack:///./app/javascript/packs/public.js"],"names":["webpackJsonp","682","module","__webpack_exports__","__webpack_require__","main","_require","length","IntlRelativeFormat","default","_require2","delegate","emojify","_require3","getLocale","_getLocale","localeData","ReactDOM","forEach","__addLocaleData","Object","__WEBPACK_IMPORTED_MODULE_2__mastodon_ready__","locale","document","documentElement","lang","dateTimeFormat","Intl","DateTimeFormat","year","month","day","hour","minute","relativeFormat","call","querySelectorAll","content","innerHTML","datetime","Date","getAttribute","formattedDate","format","title","textContent","addEventListener","e","preventDefault","window","open","target","href","reactComponents","then","bind","_ref","MediaContainer","createElement","render","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","components","body","appendChild","catch","error","console","_ref2","button","location","_ref3","contentEl","parentNode","querySelector","style","display","marginBottom","_ref4","nameCounter","value","_ref5","noteCounter","_ref6","avatar","_ref7","files","file","url","URL","createObjectURL","dataset","originalSrc","src","_ref8","header","_ref9","backgroundImage","defineProperty","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","n","__WEBPACK_IMPORTED_MODULE_1__mastodon_load_polyfills__","data","parent","type","postMessage","id","height","getElementsByTagName","scrollHeight"],"mappings":"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","file":"public.js","sourcesContent":["webpackJsonp([84],{\n\n/***/ 682:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mastodon_load_polyfills__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mastodon_ready__ = __webpack_require__(89);\n\n\n\n\nwindow.addEventListener('message', function (e) {\n  var data = e.data || {};\n\n  if (!window.parent || data.type !== 'setHeight') {\n    return;\n  }\n\n  Object(__WEBPACK_IMPORTED_MODULE_2__mastodon_ready__[\"default\"])(function () {\n    window.parent.postMessage({\n      type: 'setHeight',\n      id: data.id,\n      height: document.getElementsByTagName('html')[0].scrollHeight\n    }, '*');\n  });\n});\n\nfunction main() {\n  var _require = __webpack_require__(99),\n      length = _require.length;\n\n  var IntlRelativeFormat = __webpack_require__(76).default;\n\n  var _require2 = __webpack_require__(152),\n      delegate = _require2.delegate;\n\n  var emojify = __webpack_require__(73).default;\n\n  var _require3 = __webpack_require__(6),\n      getLocale = _require3.getLocale;\n\n  var _getLocale = getLocale(),\n      localeData = _getLocale.localeData;\n\n  var React = __webpack_require__(0);\n  var ReactDOM = __webpack_require__(20);\n\n  localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n  Object(__WEBPACK_IMPORTED_MODULE_2__mastodon_ready__[\"default\"])(function () {\n    var locale = document.documentElement.lang;\n\n    var dateTimeFormat = new Intl.DateTimeFormat(locale, {\n      year: 'numeric',\n      month: 'long',\n      day: 'numeric',\n      hour: 'numeric',\n      minute: 'numeric'\n    });\n\n    var relativeFormat = new IntlRelativeFormat(locale);\n\n    [].forEach.call(document.querySelectorAll('.emojify'), function (content) {\n      content.innerHTML = emojify(content.innerHTML);\n    });\n\n    [].forEach.call(document.querySelectorAll('time.formatted'), function (content) {\n      var datetime = new Date(content.getAttribute('datetime'));\n      var formattedDate = dateTimeFormat.format(datetime);\n\n      content.title = formattedDate;\n      content.textContent = formattedDate;\n    });\n\n    [].forEach.call(document.querySelectorAll('time.time-ago'), function (content) {\n      var datetime = new Date(content.getAttribute('datetime'));\n\n      content.title = dateTimeFormat.format(datetime);\n      content.textContent = relativeFormat.format(datetime);\n    });\n\n    [].forEach.call(document.querySelectorAll('.logo-button'), function (content) {\n      content.addEventListener('click', function (e) {\n        e.preventDefault();\n        window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n      });\n    });\n\n    var reactComponents = document.querySelectorAll('[data-component]');\n    if (reactComponents.length > 0) {\n      __webpack_require__.e/* import() */(34).then(__webpack_require__.bind(null, 839)).then(function (_ref) {\n        var MediaContainer = _ref.default;\n\n        var content = document.createElement('div');\n\n        ReactDOM.render(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(MediaContainer, {\n          locale: locale,\n          components: reactComponents\n        }), content);\n        document.body.appendChild(content);\n      }).catch(function (error) {\n        return console.error(error);\n      });\n    }\n  });\n\n  delegate(document, '.webapp-btn', 'click', function (_ref2) {\n    var target = _ref2.target,\n        button = _ref2.button;\n\n    if (button !== 0) {\n      return true;\n    }\n    window.location.href = target.href;\n    return false;\n  });\n\n  delegate(document, '.status__content__spoiler-link', 'click', function (_ref3) {\n    var target = _ref3.target;\n\n    var contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n    if (contentEl.style.display === 'block') {\n      contentEl.style.display = 'none';\n      target.parentNode.style.marginBottom = 0;\n    } else {\n      contentEl.style.display = 'block';\n      target.parentNode.style.marginBottom = null;\n    }\n\n    return false;\n  });\n\n  delegate(document, '.account_display_name', 'input', function (_ref4) {\n    var target = _ref4.target;\n\n    var nameCounter = document.querySelector('.name-counter');\n\n    if (nameCounter) {\n      nameCounter.textContent = 30 - length(target.value);\n    }\n  });\n\n  delegate(document, '.account_note', 'input', function (_ref5) {\n    var target = _ref5.target;\n\n    var noteCounter = document.querySelector('.note-counter');\n\n    if (noteCounter) {\n      noteCounter.textContent = 160 - length(target.value);\n    }\n  });\n\n  delegate(document, '#account_avatar', 'change', function (_ref6) {\n    var target = _ref6.target;\n\n    var avatar = document.querySelector('.card.compact .avatar img');\n\n    var _ref7 = target.files || [],\n        file = _ref7[0];\n\n    var url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n    avatar.src = url;\n  });\n\n  delegate(document, '#account_header', 'change', function (_ref8) {\n    var target = _ref8.target;\n\n    var header = document.querySelector('.card.compact');\n\n    var _ref9 = target.files || [],\n        file = _ref9[0];\n\n    var url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n    header.style.backgroundImage = 'url(' + url + ')';\n  });\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_1__mastodon_load_polyfills__[\"a\" /* default */])().then(main).catch(function (error) {\n  console.error(error);\n});\n\n/***/ })\n\n},[682]);\n\n\n// WEBPACK FOOTER //\n// public.js","import loadPolyfills from '../mastodon/load_polyfills';\nimport ready from '../mastodon/ready';\n\nwindow.addEventListener('message', e => {\n  const data = e.data || {};\n\n  if (!window.parent || data.type !== 'setHeight') {\n    return;\n  }\n\n  ready(() => {\n    window.parent.postMessage({\n      type: 'setHeight',\n      id: data.id,\n      height: document.getElementsByTagName('html')[0].scrollHeight,\n    }, '*');\n  });\n});\n\nfunction main() {\n  const { length } = require('stringz');\n  const IntlRelativeFormat = require('intl-relativeformat').default;\n  const { delegate } = require('rails-ujs');\n  const emojify = require('../mastodon/features/emoji/emoji').default;\n  const { getLocale } = require('../mastodon/locales');\n  const { localeData } = getLocale();\n  const React = require('react');\n  const ReactDOM = require('react-dom');\n\n  localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n  ready(() => {\n    const locale = document.documentElement.lang;\n\n    const dateTimeFormat = new Intl.DateTimeFormat(locale, {\n      year: 'numeric',\n      month: 'long',\n      day: 'numeric',\n      hour: 'numeric',\n      minute: 'numeric',\n    });\n\n    const relativeFormat = new IntlRelativeFormat(locale);\n\n    [].forEach.call(document.querySelectorAll('.emojify'), (content) => {\n      content.innerHTML = emojify(content.innerHTML);\n    });\n\n    [].forEach.call(document.querySelectorAll('time.formatted'), (content) => {\n      const datetime = new Date(content.getAttribute('datetime'));\n      const formattedDate = dateTimeFormat.format(datetime);\n\n      content.title = formattedDate;\n      content.textContent = formattedDate;\n    });\n\n    [].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {\n      const datetime = new Date(content.getAttribute('datetime'));\n\n      content.title = dateTimeFormat.format(datetime);\n      content.textContent = relativeFormat.format(datetime);\n    });\n\n    [].forEach.call(document.querySelectorAll('.logo-button'), (content) => {\n      content.addEventListener('click', (e) => {\n        e.preventDefault();\n        window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n      });\n    });\n\n    const reactComponents = document.querySelectorAll('[data-component]');\n    if (reactComponents.length > 0) {\n      import(/* webpackChunkName: \"containers/media_container\" */ '../mastodon/containers/media_container')\n        .then(({ default: MediaContainer }) => {\n          const content = document.createElement('div');\n\n          ReactDOM.render(<MediaContainer locale={locale} components={reactComponents} />, content);\n          document.body.appendChild(content);\n        })\n        .catch(error => console.error(error));\n    }\n  });\n\n  delegate(document, '.webapp-btn', 'click', ({ target, button }) => {\n    if (button !== 0) {\n      return true;\n    }\n    window.location.href = target.href;\n    return false;\n  });\n\n  delegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {\n    const contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n    if (contentEl.style.display === 'block') {\n      contentEl.style.display = 'none';\n      target.parentNode.style.marginBottom = 0;\n    } else {\n      contentEl.style.display = 'block';\n      target.parentNode.style.marginBottom = null;\n    }\n\n    return false;\n  });\n\n  delegate(document, '.account_display_name', 'input', ({ target }) => {\n    const nameCounter = document.querySelector('.name-counter');\n\n    if (nameCounter) {\n      nameCounter.textContent = 30 - length(target.value);\n    }\n  });\n\n  delegate(document, '.account_note', 'input', ({ target }) => {\n    const noteCounter = document.querySelector('.note-counter');\n\n    if (noteCounter) {\n      noteCounter.textContent = 160 - length(target.value);\n    }\n  });\n\n  delegate(document, '#account_avatar', 'change', ({ target }) => {\n    const avatar = document.querySelector('.card.compact .avatar img');\n    const [file] = target.files || [];\n    const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n    avatar.src = url;\n  });\n\n  delegate(document, '#account_header', 'change', ({ target }) => {\n    const header = document.querySelector('.card.compact');\n    const [file] = target.files || [];\n    const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n    header.style.backgroundImage = `url(${url})`;\n  });\n}\n\nloadPolyfills().then(main).catch(error => {\n  console.error(error);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/packs/public.js"],"sourceRoot":""}
\ No newline at end of file