{"version":3,"file":"commons-6440b53b56eccdf5313c.js","mappings":"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","sources":["webpack://imf-2022/./node_modules/html-tags/index.js","webpack://imf-2022/./node_modules/react-fast-compare/index.js","webpack://imf-2022/./node_modules/react-helmet/es/Helmet.js","webpack://imf-2022/./node_modules/react-safe/index.js","webpack://imf-2022/./node_modules/react-side-effect/lib/index.js","webpack://imf-2022/./node_modules/react-use-hoverintent/dist/index.js","webpack://imf-2022/./src/components/download-full-report.js","webpack://imf-2022/./src/components/svg/logo.js","webpack://imf-2022/./src/components/homepage-logo-link.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/constants.js","webpack://imf-2022/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://imf-2022/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://imf-2022/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://imf-2022/./node_modules/tslib/tslib.es6.js","webpack://imf-2022/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://imf-2022/./node_modules/react-clientside-effect/lib/index.es.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/solver.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/index.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://imf-2022/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://imf-2022/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://imf-2022/./src/components/sub-navigation.js","webpack://imf-2022/./src/components/mobile-sub-navigation.js","webpack://imf-2022/./src/components/site-header.js","webpack://imf-2022/./src/components/page-metadata.js","webpack://imf-2022/./src/hooks/use-site-metadata.js","webpack://imf-2022/./src/components/cta.js","webpack://imf-2022/./src/components/site-footer.js","webpack://imf-2022/./src/components/layout.js","webpack://imf-2022/./src/helpers/find-object.js","webpack://imf-2022/./src/helpers/strings.js","webpack://imf-2022/./src/images/footer/icon-facebook.inline.svg","webpack://imf-2022/./src/images/footer/icon-instagram.inline.svg","webpack://imf-2022/./src/images/footer/icon-linkedin.inline.svg","webpack://imf-2022/./src/images/footer/icon-twitter.inline.svg","webpack://imf-2022/./src/images/footer/icon-youtube.inline.svg","webpack://imf-2022/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://imf-2022/./node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["'use strict';\n\nmodule.exports = require('./html-tags.json');","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n  // START: fast-deep-equal es6/index.js 3.1.1\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n    var length, i, keys;\n\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n\n      for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n\n      return true;\n    } // START: Modifications:\n    // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n    //    to co-exist with es5.\n    // 2. Replace `for of` with es5 compliant iteration using `for`.\n    //    Basically, take:\n    //\n    //    ```js\n    //    for (i of a.entries())\n    //      if (!b.has(i[0])) return false;\n    //    ```\n    //\n    //    ... and convert to:\n    //\n    //    ```js\n    //    it = a.entries();\n    //    while (!(i = it.next()).done)\n    //      if (!b.has(i.value[0])) return false;\n    //    ```\n    //\n    //    **Note**: `i` access switches to `i.value`.\n\n\n    var it;\n\n    if (hasMap && a instanceof Map && b instanceof Map) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n\n      while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n      it = a.entries();\n\n      while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n\n      return true;\n    }\n\n    if (hasSet && a instanceof Set && b instanceof Set) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n\n      while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n      return true;\n    } // END: Modifications\n\n\n    if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length) return false;\n\n      for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n\n      return true;\n    }\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; // END: fast-deep-equal\n    // START: react-fast-compare\n    // custom handling for DOM elements\n\n\n    if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n    for (i = length; i-- !== 0;) {\n      if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n        // React-specific: avoid traversing React elements' _owner\n        // Preact-specific: avoid traversing Preact elements' __v and __o\n        //    __v = $_original / $_vnode\n        //    __o = $_owner\n        // These properties contain circular references and are not needed when\n        // comparing the actual elements (and not their owners)\n        // .$$typeof and ._store on just reasonable markers of elements\n        continue;\n      } // all other properties should be traversed as usual\n\n\n      if (!equal(a[keys[i]], b[keys[i]])) return false;\n    } // END: react-fast-compare\n    // START: fast-deep-equal\n\n\n    return true;\n  }\n\n  return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n  try {\n    return equal(a, b);\n  } catch (error) {\n    if ((error.message || '').match(/stack|recursion/i)) {\n      // warn on circular references, don't crash\n      // browsers give this different errors name and messages:\n      // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n      // firefox: \"InternalError\", too much recursion\"\n      // edge: \"Error\", \"Out of stack space\"\n      console.warn('react-fast-compare cannot handle circular refs');\n      return false;\n    } // some other error. we should definitely know about these\n\n\n    throw error;\n  }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n  BODY: \"bodyAttributes\",\n  HTML: \"htmlAttributes\",\n  TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n  BASE: \"base\",\n  BODY: \"body\",\n  HEAD: \"head\",\n  HTML: \"html\",\n  LINK: \"link\",\n  META: \"meta\",\n  NOSCRIPT: \"noscript\",\n  SCRIPT: \"script\",\n  STYLE: \"style\",\n  TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n  return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n  CHARSET: \"charset\",\n  CSS_TEXT: \"cssText\",\n  HREF: \"href\",\n  HTTPEQUIV: \"http-equiv\",\n  INNER_HTML: \"innerHTML\",\n  ITEM_PROP: \"itemprop\",\n  NAME: \"name\",\n  PROPERTY: \"property\",\n  REL: \"rel\",\n  SRC: \"src\",\n  TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n  accesskey: \"accessKey\",\n  charset: \"charSet\",\n  class: \"className\",\n  contenteditable: \"contentEditable\",\n  contextmenu: \"contextMenu\",\n  \"http-equiv\": \"httpEquiv\",\n  itemprop: \"itemProp\",\n  tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n  DEFAULT_TITLE: \"defaultTitle\",\n  DEFER: \"defer\",\n  ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n  ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n  TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n  obj[REACT_TAG_MAP[key]] = key;\n  return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\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 _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 encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n  var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n  if (encode === false) {\n    return String(str);\n  }\n\n  return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n  var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n  var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n  if (innermostTemplate && innermostTitle) {\n    // use function arg to avoid need to escape $ characters\n    return innermostTemplate.replace(/%s/g, function () {\n      return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n    });\n  }\n\n  var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n  return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n  return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n  return propsList.filter(function (props) {\n    return typeof props[tagType] !== \"undefined\";\n  }).map(function (props) {\n    return props[tagType];\n  }).reduce(function (tagAttrs, current) {\n    return _extends({}, tagAttrs, current);\n  }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n  return propsList.filter(function (props) {\n    return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n  }).map(function (props) {\n    return props[TAG_NAMES.BASE];\n  }).reverse().reduce(function (innermostBaseTag, tag) {\n    if (!innermostBaseTag.length) {\n      var keys = Object.keys(tag);\n\n      for (var i = 0; i < keys.length; i++) {\n        var attributeKey = keys[i];\n        var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n        if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n          return innermostBaseTag.concat(tag);\n        }\n      }\n    }\n\n    return innermostBaseTag;\n  }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n  // Calculate list of tags, giving priority innermost component (end of the propslist)\n  var approvedSeenTags = {};\n  return propsList.filter(function (props) {\n    if (Array.isArray(props[tagName])) {\n      return true;\n    }\n\n    if (typeof props[tagName] !== \"undefined\") {\n      warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n    }\n\n    return false;\n  }).map(function (props) {\n    return props[tagName];\n  }).reverse().reduce(function (approvedTags, instanceTags) {\n    var instanceSeenTags = {};\n    instanceTags.filter(function (tag) {\n      var primaryAttributeKey = void 0;\n      var keys = Object.keys(tag);\n\n      for (var i = 0; i < keys.length; i++) {\n        var attributeKey = keys[i];\n        var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n        if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n          primaryAttributeKey = lowerCaseAttributeKey;\n        } // Special case for innerHTML which doesn't work lowercased\n\n\n        if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n          primaryAttributeKey = attributeKey;\n        }\n      }\n\n      if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n        return false;\n      }\n\n      var value = tag[primaryAttributeKey].toLowerCase();\n\n      if (!approvedSeenTags[primaryAttributeKey]) {\n        approvedSeenTags[primaryAttributeKey] = {};\n      }\n\n      if (!instanceSeenTags[primaryAttributeKey]) {\n        instanceSeenTags[primaryAttributeKey] = {};\n      }\n\n      if (!approvedSeenTags[primaryAttributeKey][value]) {\n        instanceSeenTags[primaryAttributeKey][value] = true;\n        return true;\n      }\n\n      return false;\n    }).reverse().forEach(function (tag) {\n      return approvedTags.push(tag);\n    }); // Update seen tags with tags from this instance\n\n    var keys = Object.keys(instanceSeenTags);\n\n    for (var i = 0; i < keys.length; i++) {\n      var attributeKey = keys[i];\n      var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n      approvedSeenTags[attributeKey] = tagUnion;\n    }\n\n    return approvedTags;\n  }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n  for (var i = propsList.length - 1; i >= 0; i--) {\n    var props = propsList[i];\n\n    if (props.hasOwnProperty(property)) {\n      return props[property];\n    }\n  }\n\n  return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n  return {\n    baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n    bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n    defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n    encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n    htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n    linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n    metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n    noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n    onChangeClientState: getOnChangeClientState(propsList),\n    scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n    styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n    title: getTitleFromPropsList(propsList),\n    titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n  };\n};\n\nvar rafPolyfill = function () {\n  var clock = Date.now();\n  return function (callback) {\n    var currentTime = Date.now();\n\n    if (currentTime - clock > 16) {\n      clock = currentTime;\n      callback(currentTime);\n    } else {\n      setTimeout(function () {\n        rafPolyfill(callback);\n      }, 0);\n    }\n  };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n  return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n  return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n  if (_helmetCallback) {\n    cancelAnimationFrame(_helmetCallback);\n  }\n\n  if (newState.defer) {\n    _helmetCallback = requestAnimationFrame(function () {\n      commitTagChanges(newState, function () {\n        _helmetCallback = null;\n      });\n    });\n  } else {\n    commitTagChanges(newState);\n    _helmetCallback = null;\n  }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n  var baseTag = newState.baseTag,\n      bodyAttributes = newState.bodyAttributes,\n      htmlAttributes = newState.htmlAttributes,\n      linkTags = newState.linkTags,\n      metaTags = newState.metaTags,\n      noscriptTags = newState.noscriptTags,\n      onChangeClientState = newState.onChangeClientState,\n      scriptTags = newState.scriptTags,\n      styleTags = newState.styleTags,\n      title = newState.title,\n      titleAttributes = newState.titleAttributes;\n  updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n  updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n  updateTitle(title, titleAttributes);\n  var tagUpdates = {\n    baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n    linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n    metaTags: updateTags(TAG_NAMES.META, metaTags),\n    noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n    scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n    styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n  };\n  var addedTags = {};\n  var removedTags = {};\n  Object.keys(tagUpdates).forEach(function (tagType) {\n    var _tagUpdates$tagType = tagUpdates[tagType],\n        newTags = _tagUpdates$tagType.newTags,\n        oldTags = _tagUpdates$tagType.oldTags;\n\n    if (newTags.length) {\n      addedTags[tagType] = newTags;\n    }\n\n    if (oldTags.length) {\n      removedTags[tagType] = tagUpdates[tagType].oldTags;\n    }\n  });\n  cb && cb();\n  onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n  return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n  if (typeof title !== \"undefined\" && document.title !== title) {\n    document.title = flattenArray(title);\n  }\n\n  updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n  var elementTag = document.getElementsByTagName(tagName)[0];\n\n  if (!elementTag) {\n    return;\n  }\n\n  var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n  var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n  var attributesToRemove = [].concat(helmetAttributes);\n  var attributeKeys = Object.keys(attributes);\n\n  for (var i = 0; i < attributeKeys.length; i++) {\n    var attribute = attributeKeys[i];\n    var value = attributes[attribute] || \"\";\n\n    if (elementTag.getAttribute(attribute) !== value) {\n      elementTag.setAttribute(attribute, value);\n    }\n\n    if (helmetAttributes.indexOf(attribute) === -1) {\n      helmetAttributes.push(attribute);\n    }\n\n    var indexToSave = attributesToRemove.indexOf(attribute);\n\n    if (indexToSave !== -1) {\n      attributesToRemove.splice(indexToSave, 1);\n    }\n  }\n\n  for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n    elementTag.removeAttribute(attributesToRemove[_i]);\n  }\n\n  if (helmetAttributes.length === attributesToRemove.length) {\n    elementTag.removeAttribute(HELMET_ATTRIBUTE);\n  } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n    elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n  }\n};\n\nvar updateTags = function updateTags(type, tags) {\n  var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n  var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n  var oldTags = Array.prototype.slice.call(tagNodes);\n  var newTags = [];\n  var indexToDelete = void 0;\n\n  if (tags && tags.length) {\n    tags.forEach(function (tag) {\n      var newElement = document.createElement(type);\n\n      for (var attribute in tag) {\n        if (tag.hasOwnProperty(attribute)) {\n          if (attribute === TAG_PROPERTIES.INNER_HTML) {\n            newElement.innerHTML = tag.innerHTML;\n          } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n            if (newElement.styleSheet) {\n              newElement.styleSheet.cssText = tag.cssText;\n            } else {\n              newElement.appendChild(document.createTextNode(tag.cssText));\n            }\n          } else {\n            var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n            newElement.setAttribute(attribute, value);\n          }\n        }\n      }\n\n      newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n      if (oldTags.some(function (existingTag, index) {\n        indexToDelete = index;\n        return newElement.isEqualNode(existingTag);\n      })) {\n        oldTags.splice(indexToDelete, 1);\n      } else {\n        newTags.push(newElement);\n      }\n    });\n  }\n\n  oldTags.forEach(function (tag) {\n    return tag.parentNode.removeChild(tag);\n  });\n  newTags.forEach(function (tag) {\n    return headElement.appendChild(tag);\n  });\n  return {\n    oldTags: oldTags,\n    newTags: newTags\n  };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n  return Object.keys(attributes).reduce(function (str, key) {\n    var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n    return str ? str + \" \" + attr : attr;\n  }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n  var attributeString = generateElementAttributesAsString(attributes);\n  var flattenedTitle = flattenArray(title);\n  return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n  return tags.reduce(function (str, tag) {\n    var attributeHtml = Object.keys(tag).filter(function (attribute) {\n      return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n    }).reduce(function (string, attribute) {\n      var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n      return string ? string + \" \" + attr : attr;\n    }, \"\");\n    var tagContent = tag.innerHTML || tag.cssText || \"\";\n    var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n    return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n  }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n  var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return Object.keys(attributes).reduce(function (obj, key) {\n    obj[REACT_TAG_MAP[key] || key] = attributes[key];\n    return obj;\n  }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n  var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return Object.keys(props).reduce(function (obj, key) {\n    obj[HTML_TAG_MAP[key] || key] = props[key];\n    return obj;\n  }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n  var _initProps; // assigning into an array to define toString function on it\n\n\n  var initProps = (_initProps = {\n    key: title\n  }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n  var props = convertElementAttributestoReactProps(attributes, initProps);\n  return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n  return tags.map(function (tag, i) {\n    var _mappedTag;\n\n    var mappedTag = (_mappedTag = {\n      key: i\n    }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n    Object.keys(tag).forEach(function (attribute) {\n      var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n      if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n        var content = tag.innerHTML || tag.cssText;\n        mappedTag.dangerouslySetInnerHTML = {\n          __html: content\n        };\n      } else {\n        mappedTag[mappedAttribute] = tag[attribute];\n      }\n    });\n    return React.createElement(type, mappedTag);\n  });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n  switch (type) {\n    case TAG_NAMES.TITLE:\n      return {\n        toComponent: function toComponent() {\n          return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n        },\n        toString: function toString() {\n          return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n        }\n      };\n\n    case ATTRIBUTE_NAMES.BODY:\n    case ATTRIBUTE_NAMES.HTML:\n      return {\n        toComponent: function toComponent() {\n          return convertElementAttributestoReactProps(tags);\n        },\n        toString: function toString() {\n          return generateElementAttributesAsString(tags);\n        }\n      };\n\n    default:\n      return {\n        toComponent: function toComponent() {\n          return generateTagsAsReactComponent(type, tags);\n        },\n        toString: function toString() {\n          return generateTagsAsString(type, tags, encode);\n        }\n      };\n  }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n  var baseTag = _ref.baseTag,\n      bodyAttributes = _ref.bodyAttributes,\n      encode = _ref.encode,\n      htmlAttributes = _ref.htmlAttributes,\n      linkTags = _ref.linkTags,\n      metaTags = _ref.metaTags,\n      noscriptTags = _ref.noscriptTags,\n      scriptTags = _ref.scriptTags,\n      styleTags = _ref.styleTags,\n      _ref$title = _ref.title,\n      title = _ref$title === undefined ? \"\" : _ref$title,\n      titleAttributes = _ref.titleAttributes;\n  return {\n    base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n    bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n    htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n    link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n    meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n    noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n    script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n    style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n    title: getMethodsForTag(TAG_NAMES.TITLE, {\n      title: title,\n      titleAttributes: titleAttributes\n    }, encode)\n  };\n};\n\nvar Helmet = function Helmet(Component) {\n  var _class, _temp;\n\n  return _temp = _class = function (_React$Component) {\n    inherits(HelmetWrapper, _React$Component);\n\n    function HelmetWrapper() {\n      classCallCheck(this, HelmetWrapper);\n      return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n    }\n\n    HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n      return !isEqual(this.props, nextProps);\n    };\n\n    HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n      if (!nestedChildren) {\n        return null;\n      }\n\n      switch (child.type) {\n        case TAG_NAMES.SCRIPT:\n        case TAG_NAMES.NOSCRIPT:\n          return {\n            innerHTML: nestedChildren\n          };\n\n        case TAG_NAMES.STYLE:\n          return {\n            cssText: nestedChildren\n          };\n      }\n\n      throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n    };\n\n    HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n      var _babelHelpers$extends;\n\n      var child = _ref.child,\n          arrayTypeChildren = _ref.arrayTypeChildren,\n          newChildProps = _ref.newChildProps,\n          nestedChildren = _ref.nestedChildren;\n      return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n    };\n\n    HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n      var _babelHelpers$extends2, _babelHelpers$extends3;\n\n      var child = _ref2.child,\n          newProps = _ref2.newProps,\n          newChildProps = _ref2.newChildProps,\n          nestedChildren = _ref2.nestedChildren;\n\n      switch (child.type) {\n        case TAG_NAMES.TITLE:\n          return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n        case TAG_NAMES.BODY:\n          return _extends({}, newProps, {\n            bodyAttributes: _extends({}, newChildProps)\n          });\n\n        case TAG_NAMES.HTML:\n          return _extends({}, newProps, {\n            htmlAttributes: _extends({}, newChildProps)\n          });\n      }\n\n      return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n    };\n\n    HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n      var newFlattenedProps = _extends({}, newProps);\n\n      Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n        var _babelHelpers$extends4;\n\n        newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n      });\n      return newFlattenedProps;\n    };\n\n    HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (!VALID_TAG_NAMES.some(function (name) {\n          return child.type === name;\n        })) {\n          if (typeof child.type === \"function\") {\n            return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n          }\n\n          return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n        }\n\n        if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n          return typeof nestedChild !== \"string\";\n        }))) {\n          throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n        }\n      }\n\n      return true;\n    };\n\n    HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n      var _this2 = this;\n\n      var arrayTypeChildren = {};\n      React.Children.forEach(children, function (child) {\n        if (!child || !child.props) {\n          return;\n        }\n\n        var _child$props = child.props,\n            nestedChildren = _child$props.children,\n            childProps = objectWithoutProperties(_child$props, [\"children\"]);\n        var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n        _this2.warnOnInvalidChildren(child, nestedChildren);\n\n        switch (child.type) {\n          case TAG_NAMES.LINK:\n          case TAG_NAMES.META:\n          case TAG_NAMES.NOSCRIPT:\n          case TAG_NAMES.SCRIPT:\n          case TAG_NAMES.STYLE:\n            arrayTypeChildren = _this2.flattenArrayTypeChildren({\n              child: child,\n              arrayTypeChildren: arrayTypeChildren,\n              newChildProps: newChildProps,\n              nestedChildren: nestedChildren\n            });\n            break;\n\n          default:\n            newProps = _this2.mapObjectTypeChildren({\n              child: child,\n              newProps: newProps,\n              newChildProps: newChildProps,\n              nestedChildren: nestedChildren\n            });\n            break;\n        }\n      });\n      newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n      return newProps;\n    };\n\n    HelmetWrapper.prototype.render = function render() {\n      var _props = this.props,\n          children = _props.children,\n          props = objectWithoutProperties(_props, [\"children\"]);\n\n      var newProps = _extends({}, props);\n\n      if (children) {\n        newProps = this.mapChildrenToProps(children, newProps);\n      }\n\n      return React.createElement(Component, newProps);\n    };\n\n    createClass(HelmetWrapper, null, [{\n      key: \"canUseDOM\",\n      // Component.peek comes from react-side-effect:\n      // For testing, you may use a static peek() method available on the returned component.\n      // It lets you get the current state without resetting the mounted instance stack.\n      // Don’t use it for anything other than testing.\n\n      /**\n       * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n       * @param {Object} bodyAttributes: {\"className\": \"root\"}\n       * @param {String} defaultTitle: \"Default Title\"\n       * @param {Boolean} defer: true\n       * @param {Boolean} encodeSpecialCharacters: true\n       * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n       * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n       * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n       * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n       * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n       * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n       * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n       * @param {String} title: \"Title\"\n       * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n       * @param {String} titleTemplate: \"MySite.com - %s\"\n       */\n      set: function set$$1(canUseDOM) {\n        Component.canUseDOM = canUseDOM;\n      }\n    }]);\n    return HelmetWrapper;\n  }(React.Component), _class.propTypes = {\n    base: PropTypes.object,\n    bodyAttributes: PropTypes.object,\n    children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n    defaultTitle: PropTypes.string,\n    defer: PropTypes.bool,\n    encodeSpecialCharacters: PropTypes.bool,\n    htmlAttributes: PropTypes.object,\n    link: PropTypes.arrayOf(PropTypes.object),\n    meta: PropTypes.arrayOf(PropTypes.object),\n    noscript: PropTypes.arrayOf(PropTypes.object),\n    onChangeClientState: PropTypes.func,\n    script: PropTypes.arrayOf(PropTypes.object),\n    style: PropTypes.arrayOf(PropTypes.object),\n    title: PropTypes.string,\n    titleAttributes: PropTypes.object,\n    titleTemplate: PropTypes.string\n  }, _class.defaultProps = {\n    defer: true,\n    encodeSpecialCharacters: true\n  }, _class.peek = Component.peek, _class.rewind = function () {\n    var mappedState = Component.rewind();\n\n    if (!mappedState) {\n      // provide fallback if mappedState is undefined\n      mappedState = mapStateOnServer({\n        baseTag: [],\n        bodyAttributes: {},\n        encodeSpecialCharacters: true,\n        htmlAttributes: {},\n        linkTags: [],\n        metaTags: [],\n        noscriptTags: [],\n        scriptTags: [],\n        styleTags: [],\n        title: \"\",\n        titleAttributes: {}\n      });\n    }\n\n    return mappedState;\n  }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n  return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _htmlTags = _interopRequireDefault(require(\"html-tags\"));\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nlet omit = (keys, obj) => {\n  let obj2 = {};\n\n  for (let key of Object.keys(obj)) {\n    if (!keys.includes(key)) {\n      obj2[key] = obj[key];\n    }\n  }\n\n  return obj2;\n};\n\nlet Safe = _htmlTags.default.reduce((tags, tag) => {\n  tags[tag] = class Tag extends _react.default.Component {\n    render() {\n      let {\n        props\n      } = this;\n      return _react.default.createElement(tag, Object.assign(omit([\"children\"], props), {\n        dangerouslySetInnerHTML: {\n          __html: props.children\n        }\n      }));\n    }\n\n  };\n  return tags;\n}, {});\n\nvar _default = Safe;\nexports.default = _default;","'use strict';\n\nfunction _interopDefault(ex) {\n  return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(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\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n  if (typeof reducePropsToState !== 'function') {\n    throw new Error('Expected reducePropsToState to be a function.');\n  }\n\n  if (typeof handleStateChangeOnClient !== 'function') {\n    throw new Error('Expected handleStateChangeOnClient to be a function.');\n  }\n\n  if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n    throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n  }\n\n  function getDisplayName(WrappedComponent) {\n    return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n  }\n\n  return function wrap(WrappedComponent) {\n    if (typeof WrappedComponent !== 'function') {\n      throw new Error('Expected WrappedComponent to be a React component.');\n    }\n\n    var mountedInstances = [];\n    var state;\n\n    function emitChange() {\n      state = reducePropsToState(mountedInstances.map(function (instance) {\n        return instance.props;\n      }));\n\n      if (SideEffect.canUseDOM) {\n        handleStateChangeOnClient(state);\n      } else if (mapStateOnServer) {\n        state = mapStateOnServer(state);\n      }\n    }\n\n    var SideEffect = /*#__PURE__*/function (_PureComponent) {\n      _inheritsLoose(SideEffect, _PureComponent);\n\n      function SideEffect() {\n        return _PureComponent.apply(this, arguments) || this;\n      } // Try to use displayName of wrapped component\n      // Expose canUseDOM so tests can monkeypatch it\n\n\n      SideEffect.peek = function peek() {\n        return state;\n      };\n\n      SideEffect.rewind = function rewind() {\n        if (SideEffect.canUseDOM) {\n          throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n        }\n\n        var recordedState = state;\n        state = undefined;\n        mountedInstances = [];\n        return recordedState;\n      };\n\n      var _proto = SideEffect.prototype;\n\n      _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n        mountedInstances.push(this);\n        emitChange();\n      };\n\n      _proto.componentDidUpdate = function componentDidUpdate() {\n        emitChange();\n      };\n\n      _proto.componentWillUnmount = function componentWillUnmount() {\n        var index = mountedInstances.indexOf(this);\n        mountedInstances.splice(index, 1);\n        emitChange();\n      };\n\n      _proto.render = function render() {\n        return React__default.createElement(WrappedComponent, this.props);\n      };\n\n      return SideEffect;\n    }(React.PureComponent);\n\n    _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n    _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n    return SideEffect;\n  };\n}\n\nmodule.exports = withSideEffect;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.useHoverIntent = useHoverIntent;\n\nvar _react = require(\"react\");\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n\n  var _s, _e;\n\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction useHoverIntent(options) {\n  var _ref = options !== null && options !== void 0 ? options : {},\n      ref = _ref.ref,\n      _ref$sensitivity = _ref.sensitivity,\n      sensitivity = _ref$sensitivity === void 0 ? 6 : _ref$sensitivity,\n      _ref$interval = _ref.interval,\n      interval = _ref$interval === void 0 ? 100 : _ref$interval,\n      _ref$timeout = _ref.timeout,\n      timeout = _ref$timeout === void 0 ? 0 : _ref$timeout;\n\n  var intentRef = (0, _react.useRef)(null);\n\n  var _useState = (0, _react.useState)(false),\n      _useState2 = _slicedToArray(_useState, 2),\n      isHovering = _useState2[0],\n      setIsHovering = _useState2[1];\n\n  var x = 0,\n      y = 0,\n      pX = 0,\n      pY = 0,\n      timer = 0;\n\n  var delay = function delay(e) {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    return setIsHovering(false);\n  };\n\n  var tracker = function tracker(e) {\n    x = e.clientX;\n    y = e.clientY;\n  };\n\n  var compare = function compare(e) {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    if (Math.abs(pX - x) + Math.abs(pY - y) < sensitivity) {\n      return setIsHovering(true);\n    } else {\n      pX = x;\n      pY = y;\n      timer = window.setTimeout(function () {\n        return compare(e);\n      }, interval);\n    }\n  };\n\n  var dispatchOver = function dispatchOver(e) {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    if (intentRef.current) {\n      intentRef.current.removeEventListener('mousemove', tracker, false);\n    }\n\n    if (!isHovering) {\n      pX = e.clientX;\n      pY = e.clientY;\n\n      if (intentRef.current) {\n        intentRef.current.addEventListener('mousemove', tracker, false);\n      }\n\n      timer = window.setTimeout(function () {\n        return compare(e);\n      }, interval);\n    }\n  };\n\n  var dispatchOut = function dispatchOut(e) {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    if (intentRef.current) {\n      intentRef.current.removeEventListener('mousemove', tracker, false);\n    }\n\n    if (isHovering) {\n      timer = window.setTimeout(function () {\n        return delay(e);\n      }, timeout);\n    }\n  };\n\n  (0, _react.useEffect)(function () {\n    var currentRef = intentRef.current;\n\n    if (currentRef) {\n      currentRef.addEventListener('mouseover', dispatchOver, false);\n      currentRef.addEventListener('mouseout', dispatchOut, false);\n    }\n\n    return function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n\n      if (currentRef) {\n        currentRef.removeEventListener('mouseover', dispatchOver, false);\n        currentRef.removeEventListener('mouseout', dispatchOut, false);\n      }\n    };\n  });\n  (0, _react.useImperativeHandle)(ref, function () {\n    return intentRef.current;\n  }, [intentRef]);\n  return [isHovering, intentRef];\n}","import React from \"react\"\nimport menu from \"../data/menu.json\"\nimport { Link, withPrefix } from \"gatsby\"\n\nexport default function DownloadFullReport({ location, title, title_size }) {\n  const downloads = menu.find(item => {\n    return item.name === \"Downloads\"\n  }).children\n  const downloadLink = downloads.find(item => {\n    return item.name === \"Download Full Report\"\n  })\n  const reports = downloads.find(item => {\n    return item.name === \"Download Full Report\"\n  }).children\n\n  return reports ? (\n    <div\n      className={\n        location\n          ? `download-full-report download-full-report--${location}`\n          : \"download-full-report\"\n      }\n    >\n      <h3\n        className={`title title--${\n          title_size ? title_size : \"r\"\n        } title--uppercase`}\n      >\n        {title ? title : \"Download the report\"}\n      </h3>\n      <ul>\n        {reports.map((item, index) => (\n          <li key={index} lang={item.lang}>\n            {item.href.includes(\".pdf\") ? (\n              <a\n                href={withPrefix(\"/\") + item.href}\n                className=\"title title--xs title--bold\"\n              >\n                {item.name}\n              </a>\n            ) : (\n              <Link to={item.href} className=\"title title--xs title--bold\">\n                {item.name}\n              </Link>\n            )}\n          </li>\n        ))}\n      </ul>\n    </div>\n  ) : (\n    <>\n      {downloadLink.href.includes(\".pdf\") ? (\n        <a\n          href={withPrefix(\"/\") + downloadLink.href}\n          className=\"title title--s\"\n        >\n          {downloadLink.name}\n        </a>\n      ) : (\n        <Link to={downloadLink.href} className=\"title title--s\">\n          {downloadLink.name}\n        </Link>\n      )}\n    </>\n  )\n}\n","import React from \"react\"\n\nexport default function Logo() {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width={60}\n      height={60}\n      viewBox=\"0 0 55 55\"\n    >\n      <g fill=\"currentColor\">\n        <path d=\"M5.78 36.58l.22-.06-.58-2.2c-.91 0-1.72-.15-2.59-.23l2.07-1.72-.54-2.08h-.21c.1.44.07.49-.27.57l-1.42.37c-.57.15-1.48.36-1.72.39s-.33 0-.41-.22l-.11-.25-.22.1L.45 33l.21-.06-.05-.33a.35.35 0 01.26-.45 15.16 15.16 0 011.67-.52l1-.27v.06l-3 2.17.2.76 3.58.21v.06l-2.71.72c-.33.08-.37.06-.5-.37L1 35l.7 2.64h.2c-.1-.44-.07-.49.26-.57l3.13-.82c.32-.12.36-.1.49.33zM6.52 42.22c1.27-.7 1.64-1.86.71-3.51s-2.11-1.94-3.37-1.23-1.63 1.87-.71 3.52 2.11 1.93 3.37 1.22zm-3.14-1.36c-.27-.47 0-1 1.41-1.74s2-.69 2.22-.3c.37.66-.56 1.26-1.41 1.75-1.3.73-1.93.81-2.22.29zM17.37 52.44l1.43-3.25.22.1c.43.18.47.26.38 1.34l.32.14.55-1.25L16 47.61l-.56 1.25.33.14c.75-.79.83-.81 1.23-.63l.22.1-1.43 3.25c-.14.31-.27.28-.78.08l-.09.19 2.88 1.28.09-.2c-.56-.22-.66-.31-.52-.63zM23.82 54.31A38.55 38.55 0 0123 50.1l-1.58-.36a39.5 39.5 0 01-2.62 3.43c-.21.2-.27.22-.74.14l-.05.22 1.89.47.05-.22-.5-.15c-.21-.06-.23-.14-.13-.3s.34-.54.57-.89l1.55.36c0 .29.13.76.15 1s0 .27-.22.24h-.43v.21l3.47.8v-.21c-.47-.2-.48-.23-.59-.53zm-3.74-2.15c.26-.41.72-1.07 1-1.44.09.53.22 1.27.28 1.73zM35.71 49.63c.09-.27.24-.33.57-.44l-.06-.2-1.78.46.06.21.45-.07c.16 0 .19.06.16.23s-.2 1.16-.36 1.88c-.45-.42-1.2-1.16-1.48-1.44-.11-.11-.11-.19 0-.23l.4-.15v-.21l-3.33.87v.2a.59.59 0 01.63.11c.39.3 1.41 1.21 1.92 1.7a.63.63 0 01.16.29l.23.91c.08.32 0 .35-.64.56l.06.2 3.45-.9-.06-.21c-.7.15-.75.15-.83-.17l-.26-1a.7.7 0 010-.23c.2-.77.56-1.91.71-2.37zM42.63 49.62l-.79-1.14.31-.21c.33-.22.45-.17 1 .18l.25-.17-1-1.41-.2.13c.14.72.13.76-.21 1l-.31.2-1-1.38c-.1-.15-.09-.19.09-.32l.2-.12c.54-.37.85-.15 1.56.23l.25-.18-.76-1.12-3.49 2.38.11.18c.39-.24.44-.22.63.06l1.83 2.67c.18.27.18.33-.19.6l.13.18 2.37-1.62-.13-.18c-.42.34-.47.32-.65.04zM47.81 43.52L46.16 42c-.24-.23-.25-.29 0-.59l-.16-.15L44.36 43l.16.14c.28-.28.34-.28.59-.05L47 44.85c.59.55.76.9.48 1.2s-.65.18-1.24-.37L44.35 44c-.24-.24-.26-.29 0-.59l-.16-.14L42.51 45l.16.14c.29-.29.35-.28.59-.06l1.68 1.55c.8.74 1.51.83 2.69-.43s1-1.92.18-2.68zM52.37 31.46a2 2 0 00-1.76.17 2.92 2.92 0 00-1 1.83l-.75 2.78.21.06c.12-.43.18-.45.5-.37l3.14.84c.32.1.36.14.25.57l.21.06.63-2.4a4.05 4.05 0 00.2-2 2 2 0 00-1.63-1.54zm1.22 3.34c-.07.26-.16.31-.36.25l-3.36-.9c-.15 0-.15-.13-.1-.35.18-.66.85-.88 2.17-.52 1.66.45 1.75 1.09 1.65 1.52zM1.18 21.74l3.13.81c.33.08.36.13.26.57l.21.05.68-2.68-.21-.06c-.13.44-.17.47-.5.37L1.62 20c-.32-.08-.37-.12-.27-.56l-.21-.06-.68 2.67.21.06c.13-.43.19-.45.51-.37zM5.62 13c-.58-.92-.58-1-.3-1.35l.15-.18 2.8 2.19c.26.21.22.34-.12.78l.18.14 1.15-1.47v-.76s-.08-.05-.11-.09l-2.8-2.19.15-.19c.29-.36.37-.38 1.4 0l.21-.27-1.08-.84-2.91 3.71 1.07.84zM27 4.31h-.47c-.2 0-.23-.1-.17-.28s.2-.6.35-1h1.46c.09.28.24.72.31 1s.05.27-.15.28h-.39v.22l3.27.11v-.19c-.46-.06-.47-.09-.62-.36A37.14 37.14 0 0129.08.14L27.6.09A40.52 40.52 0 0125.83 4c-.15.23-.2.26-.64.28v.22h1.82zm.48-3.18c.18.51.42 1.22.56 1.63H26.8c.2-.49.5-1.22.68-1.63zM33.09 1l.23.06-.89 3.45c-.08.32-.22.33-.76.2l-.05.21 3.05.79.06-.21c-.53-.15-.66-.23-.58-.56L35 1.47l.23.06c.45.11.5.18.6 1.26l.34.08.33-1.32L32 .37l-.33 1.32.33.09c.57-.89.65-.92 1.09-.78zM38 6.44l1.34-2.95c.14-.3.18-.33.61-.16l.09-.2L37.5 2l-.09.2c.41.19.42.25.28.56l-1.34 3c-.14.3-.2.33-.6.15l-.1.2 2.52 1.14.1-.19c-.42-.26-.43-.32-.27-.62zM39.58 5.28c-.83 1.17-.61 2.43 1 3.61s2.92 1 3.75-.21.64-2.41-1-3.6-2.91-.99-3.75.2zm1.67 1.18c1-1.38 1.54-1.46 1.93-1.19.67.48.09 1.41-.47 2.22-.86 1.22-1.41 1.51-1.93 1.18s-.44-.92.47-2.21zM47.21 14.7c-.28 0-.34 0-.57-.42l-.2.11.85 1.61.19-.11-.18-.44c-.08-.18 0-.24.15-.28l1-.17.67 1.3c-.2.22-.51.56-.7.75s-.2.17-.32 0l-.22-.32-.2.1 1.52 2.9.2-.1c-.18-.43-.17-.46 0-.72a38.55 38.55 0 012.69-3.27l-.69-1.32c-.9.16-3.56.4-4.19.38zm3.28 0c-.36.39-.84 1-1.14 1.28L48.8 15zM53.64 19.24l-.21.05c.09.44 0 .49-.28.57l-3.15.72c-.32.09-.38.05-.48-.38l-.22.05 1 4.1 1.43-.18-.08-.34c-1.08-.25-1.29-.4-1.39-.87s-.08-.56.24-.63l3.1-.72c.33-.08.4 0 .52.48l.21-.05zM15 48.4l.68-.92L12.27 45l-.13.17c.35.28.36.34.15.62l-1.93 2.59c-.19.26-.25.27-.62 0l-.13.17 3.55 2.63.69-.91-.24-.18c-.89.34-1 .28-1.53-.07s-.46-.34-.24-.64l.87-1.17c.38.29.49.36.36.82l.24.18.67-.9-.24-.18c-.36.22-.46.12-.84-.15l.91-1.22c.12-.16.15-.17.33 0l.22.16c.51.38.52.41.43 1.37zM14.25 8.56l-.73-.88-.23.18c.11 1 0 1.09-.42 1.47s-.45.37-.69.09l-.94-1.11c.37-.31.46-.39.88-.16l.23-.2-.73-.85-.23.2c.13.39 0 .48-.34.78l-1-1.15c-.12-.16-.14-.19 0-.34l.21-.17c.48-.42.53-.42 1.43-.09l.24-.2-.74-.87L8 8l.14.17c.35-.28.42-.27.63 0l1.92 2.28H12zM13.37 4.57l1.48 2.88c.15.3.14.36-.29.59l.1.19 2.66-1.36-.1-.2c-.45.22-.5.2-.65-.1l-.63-1.24.12-.07c.2-.1.67-.36.85-.13a7.6 7.6 0 00.7 1.16c.36.31.52.15 1.29-.24l1-.5-.11-.2c-.39.13-.48.12-1-.49-.35-.4-.65-.77-1.76-.4.97-.62.97-1.14.72-1.65-.44-.86-1.2-.58-2.14-.09l-3 1.55.09.18c.45-.21.52-.18.67.12zm1.83-1.34a.79.79 0 011.22.4c.21.41.16.82-.57 1.19l-.15.08-.7-1.3c0-.19 0-.25.2-.37zM30 53.84c-.13-.52-.23-1-1.38-1.15 1.21 0 1.45-.51 1.45-1.07 0-1-.8-1.07-1.85-1.07h-3.4v.21c.48 0 .53.07.53.4v3.24c0 .34-.05.38-.53.39V55h3v-.22c-.5 0-.53-.06-.53-.4V53h.15c.23 0 .76 0 .81.27a6.63 6.63 0 00.09 1.35c.17.44.39.39 1.25.39h1.1v-.22c-.44-.1-.52-.16-.69-.95zm-2.56-1.36h-.16V51c0-.2 0-.25.3-.25a.81.81 0 01.91.92c-.01.46-.24.81-1.06.81zM20.17 1.56l.31 1.57c.12.57.25 1.4.27 1.65s-.28.37-.47.44l-.19.06v.22l2.09-.41v-.22h-.48a.32.32 0 01-.38-.25c-.08-.22-.26-1-.38-1.61l-.22-1.12c1 1 1.82 1.93 2.86 2.89L25 4.54l-.5-2.47a7.91 7.91 0 01-.24-1.39c0-.33.27-.36.44-.41l.21-.06-.05-.21-2.06.42.05.2h.45a.3.3 0 01.38.24 10.88 10.88 0 01.32 1.3l.14.71c-.81-.7-1.74-1.57-2.47-2.23l-2.09.41.05.21c.42-.07.47-.02.54.3zM43.31 10.27l-.15-.14-.16.15.12.14h.36a.86.86 0 01-.17-.15zM46.41 8.33l-1.2 1.06c-.42.37-1 .87-1.25 1h.81c.23-.22.5-.47.74-.68l.85-.71c-.31 1.36-.75 2.54-1 3.92l.93 1 1.87-1.67a10.15 10.15 0 011.1-.89c.29-.16.44 0 .58.18l.15.15.16-.14L48.71 10l-.16.14.26.36a.3.3 0 010 .45 9.91 9.91 0 01-1 1l-.54.48c.2-1.05.49-2.29.69-3.27l-1.44-1.63-.16.14c.3.33.29.44.05.66zM48.91 37.24c-.26-.22-.11-.44 0-.6l.09-.2-.18-.1-1 1.83.19.11.25-.37a.31.31 0 01.43-.14 10.11 10.11 0 011.25.61l.63.35c-1 .16-2.32.31-3.29.44l-1 1.87.18.11c.23-.38.29-.39.59-.23l1.4.77c.51.28 1.23.72 1.42.86s.11.45 0 .63l-.08.19.19.1 1-1.86-.19-.1-.27.39a.32.32 0 01-.44.13c-.22-.08-1-.48-1.47-.75l-1-.56c1.38-.16 2.65-.14 4-.31l.69-1.23L50.12 38a8.83 8.83 0 01-1.21-.76zM11.22 44.66c.29-.17.45 0 .58.16l.2.18.15-.15-1.44-1.53-.15.15.28.35a.31.31 0 010 .46 9.86 9.86 0 01-1 1l-.53.5c.16-1.05.42-2.3.6-3.27l-1.48-1.63-.15.12c.3.34.29.39.05.62l-1.17 1.1c-.43.4-1 1-1.26 1.09s-.46 0-.62-.16l-.16-.13-.12.18 1.46 1.55.16-.15-.29-.38a.33.33 0 010-.46 14 14 0 011.17-1.17l.83-.79c-.27 1.37-.68 2.56-.94 3.94l1 1 1.84-1.71a8.11 8.11 0 01.99-.87zM2.54 17.72l1.46.66a15.75 15.75 0 011.49.74c.29.18.15.44.1.63l-.06.2.2.09.87-1.94-.19-.1-.23.4a.32.32 0 01-.43.16A16.33 16.33 0 014.21 18l-1-.46c1.38-.28 2.63-.37 4-.66l.57-1.27-2.29-1a10.26 10.26 0 01-1.26-.63c-.27-.2-.14-.43-.08-.61l.08-.19L4 13l-.85 1.92.19.08.22-.4a.32.32 0 01.44-.18 12.31 12.31 0 011.29.5l.66.29c-1 .25-2.29.51-3.25.72l-.9 2L2 18c.17-.4.23-.42.54-.28zM1.83 26.77l.48-1.39.42 1.39h1.39l-1.15.87.45 1.35-1.14-.87-1.25.91.52-1.43-1.11-.83h1.39zM52.02 26.77l.48-1.39.42 1.39h1.39l-1.15.87.45 1.35-1.14-.87-1.25.91.52-1.43-1.11-.83h1.39z\" />\n        <g>\n          <path d=\"M45.1 16.72v-6.06h-5.7a20.76 20.76 0 00-24.06 0H9.68v6a20.78 20.78 0 1038.46 10.9 20.54 20.54 0 00-3.04-10.84zm-.44 7.62a10.41 10.41 0 01-16.25 9.76l-.59-.44-.26-.22a10.55 10.55 0 000-15.82l.13-.1a3 3 0 01.33-.27 10.41 10.41 0 0116.64 7.09zM32.8 40.94a.81.81 0 01-.22 0h-.27c-.1 0-.2-.09-.29-.06a1 1 0 01-.25.06l-.67.14a6.22 6.22 0 01-1 0 4.87 4.87 0 01-.54 0 1.22 1.22 0 01-.54-.06 2.23 2.23 0 01.56-.16c.19 0 .4-.05.59-.1.41-.13.84-.25 1.23-.41a6.2 6.2 0 011.27-.35 3.25 3.25 0 01.54 0h.87a5.19 5.19 0 001.27-.34 2.93 2.93 0 01.77-.16h.37a.37.37 0 01.16 0s.19.19.12.25-.08.13-.16.13h-.19c-.06 0-.14.11-.19.14l-.61.52c-.28.24-.56.51-.86.73a4.45 4.45 0 01-.51.33 3.66 3.66 0 01-.57.33 5.89 5.89 0 01-1.31.28 6.22 6.22 0 01-1.22 0 4 4 0 01-.93-.23c-.34-.09-.66-.18-1-.3s-.63-.29-.94-.4a11.69 11.69 0 001.19.1h1.42a5.65 5.65 0 00.58 0 3.14 3.14 0 00.61-.12 3.59 3.59 0 001.22-.41 1.73 1.73 0 00-.5.09zm-5.44-7.69a10.27 10.27 0 113.49-7.72 10.29 10.29 0 01-3.49 7.72zm0-25.92a20.21 20.21 0 0111.05 3.29H16.33a20.18 20.18 0 0111.04-3.29zM7.15 27.56a20.15 20.15 0 012.54-9.81v12.48a15.54 15.54 0 00.54 4.12 15.46 15.46 0 004.12 6.77 24.13 24.13 0 006 4.21 32 32 0 005.1 2.11l1.11.32a20.24 20.24 0 01-19.41-20.2zM26.25 43a1.79 1.79 0 01-.53-.53 1.49 1.49 0 00-.28-.34c-.11-.09-.24-.25-.4-.26h-.52c-.06 0-.12-.11-.15-.15a.59.59 0 00-.2-.15l-.17-.11c-.1-.07-.09-.12-.18 0a3 3 0 01.4.48c.05.07 0 .21.13.21a2 2 0 01.42 0c.47.07.74.55.91.94a2 2 0 01.13.72 1.93 1.93 0 010 .34 2.58 2.58 0 01-.13.31s-.07.23-.1.24l-.37.11a1.38 1.38 0 01-.63-.09 1.58 1.58 0 01-.62-.34c-.06-.05-.23-.13-.27-.2s-.13-.28-.19-.42a.7.7 0 01-.05-.3 1.2 1.2 0 010-.38 1.39 1.39 0 01.37-.67c.06.13.08.24.14.37s.17.18.29.06-.1-.22-.15-.3a.18.18 0 01-.05-.16.21.21 0 00-.07-.19c-.09-.11-.19-.21-.29-.31s-.25-.17-.27-.27-.05-.35-.18-.18 0 .22.05.36a3.14 3.14 0 01-.66-.15l-.6-.19a10.48 10.48 0 01-1.14-.47 8.14 8.14 0 00-1.29-.43 1.07 1.07 0 00-.25 0 1.67 1.67 0 00-.38 0 .53.53 0 01-.59 0c-.32-.26-.34-.73-.6-1a2.94 2.94 0 00-.9-.89c-.14-.08-.41-.23-.45-.38s-.07-.22.07-.22.18 0 .31.14.38.06.51.15l.57.35c.37.24.71.52 1.07.78a5.78 5.78 0 001.1.58 4.41 4.41 0 001.13.51 1.77 1.77 0 01.63.19.17.17 0 00.24 0 .57.57 0 00.16-.27s.06-.08.09-.11-.05-.09-.08-.12a.89.89 0 01-.08-.29c0-.09.12-.2.16-.28a1.27 1.27 0 01.21-.25 1.1 1.1 0 01.45-.33 2.55 2.55 0 01.6-.12 1.44 1.44 0 01.62 0 .88.88 0 00.3.13h.28a.56.56 0 01.15.55 2.14 2.14 0 01-.29.63c-.06.08-.08.2-.18.26s-.23.15-.35.22a1.82 1.82 0 01-.74.2 1.14 1.14 0 01-.37 0c-.09 0-.31 0-.32-.1s.11-.22.2-.3-.05-.25-.09-.32-.07 0-.07.08v.14l-.23.23s-.07 0-.07.08a.17.17 0 010 .14 1.92 1.92 0 01-.18.22c.19.09.38 0 .58 0a.78.78 0 00.27.09h.77c.08 0 .16-.09.26-.11a1.59 1.59 0 00.55-.2c.08 0 .2-.07.25-.14a2.62 2.62 0 00.22-.25 3.64 3.64 0 01.42-.46 12.41 12.41 0 011-.75 7.52 7.52 0 011.2-.61 1.94 1.94 0 01.6-.08c.22 0 .45 0 .67-.05a5.26 5.26 0 011.19 0c.24.05.5 0 .74.09a2 2 0 00.65.08h.64c.22 0 .41 0 .62-.06a1.59 1.59 0 01.57.06c.11 0 .6.19.34.33a2.57 2.57 0 01-.61.2 1.5 1.5 0 00-.54.26 4.86 4.86 0 01-.54.33l-.59.23a9.69 9.69 0 01-1.19.38c-.22 0-.4.14-.62.19a1.14 1.14 0 01-.32 0 .65.65 0 00-.32.09 1.45 1.45 0 01-.3 0c-.1 0-.21 0-.31.07s-.43.08-.64.12c-.41.07-.83.09-1.24.14h-.89a1.6 1.6 0 01-.31 0c-.23 0-.34.09-.55.15a1.43 1.43 0 00-.28.13c-.09.06.19.17.2.17a3.72 3.72 0 00.67 0 .4.4 0 00.24 0 .68.68 0 01.3-.11 4.9 4.9 0 011.21 0 2 2 0 01.65.13l.61.23c.38.14.74.3 1.11.45a2.88 2.88 0 00.64.17 4.29 4.29 0 01.5.19 5.12 5.12 0 001.24.22h.45c.15 0 .29-.09.45-.07s.23 0 .35 0a.82.82 0 01.25.12c.18.07.24 0 .2.25a.55.55 0 01-.24.07 1.23 1.23 0 00-.34 0 6 6 0 00-.83.33 5 5 0 01-.62.29l-.74.22a4.68 4.68 0 01-1.23.22 3.18 3.18 0 01-1.38-.26l-.61-.29a7.65 7.65 0 01-1.35-.71zm1.6 4.74c.76-.16 1.52-.36 2.26-.58a29.08 29.08 0 005.47-2.27 17 17 0 005-3.84 16.75 16.75 0 003.94-6.71 11.82 11.82 0 00.57-4.19V28.5 17.8a20.21 20.21 0 01-17.24 29.97z\" />\n          <path d=\"M29.08 43.45c.21 0 .43.06.64.07a2.26 2.26 0 00.82 0 4.67 4.67 0 01.65-.13v-.09a2.57 2.57 0 00-.62 0l-.81-.14c-.29-.06-.56-.17-.83-.23a12.47 12.47 0 01-1.47-.58 3.2 3.2 0 00-1.26-.2c0 .14.48.17.59.21a2.06 2.06 0 01.49.25 12.23 12.23 0 001.13.59 3.58 3.58 0 00.67.25zM18.13 39.09a1.24 1.24 0 00-.38-.31c-.07.1.22.27.29.33s.39.41.34.57c-.05-.08-.12-.1-.13 0a1.55 1.55 0 000 .21.94.94 0 00.1.23.15.15 0 00.26-.08.92.92 0 00-.15-.6 2.53 2.53 0 00-.33-.35zM25.63 40.59c.39-.11.78-.25 1.18-.37s.81-.17 1.21-.25a6.94 6.94 0 011.28-.19 4.48 4.48 0 00.64-.08 1.73 1.73 0 00.5-.22 2.38 2.38 0 01.66-.18 2.54 2.54 0 00.56 0s.13 0 .13-.07 0-.07-.08-.07h-.34c-.18 0-.38.06-.56.08-.44.06-.88 0-1.32.08a11.78 11.78 0 00-1.16.21 10.78 10.78 0 00-1.44.43c-.47.2-.93.42-1.39.64.03.03.08.01.13-.01z\" />\n        </g>\n        <g>\n          <path d=\"M15.69 18.39a.74.74 0 01.37-.25c.05 0 .14 0 .12.09a1.13 1.13 0 00-.12.18 1 1 0 01-.21.45c-.06.08 0 .09-.1.14a.72.72 0 00-.2.09.25.25 0 01-.17.06c-.08 0-.14-.09-.21-.09h-.16s.07-.12.13-.19.26 0 .4-.06.13-.27.15-.38M14.86 19.05c.06 0 .1 0 0 .07s-.1 0 0-.07\" />\n          <path d=\"M27.45 18.11a3.82 3.82 0 00-.51-.35c-.18-.1-.3-.29-.47-.4a2.18 2.18 0 01-.22-.21c-.07-.07-.17-.08-.24-.14a1 1 0 00-.56-.25h-.26a.36.36 0 00-.3.1h-.14c-.03 0-.05.1-.06.13a.83.83 0 01-.12.27c-.05.07-.11.15-.2.15a1.42 1.42 0 00-.35 0 3.16 3.16 0 01-.32 0c-.1 0-.17.08-.26.09a1.26 1.26 0 01-.33.05 2 2 0 00-.34 0c-.15 0-.16 0-.27.08a1.21 1.21 0 01-.23.22 3.8 3.8 0 01-.6.31 1 1 0 00-.29.14c-.14.1 0 .11 0 .24a.34.34 0 01-.2-.13s-.07-.18-.1-.17-.15 0-.18.12-.07.09-.21.07a2.17 2.17 0 00-.51 0c-.09 0-.33-.08-.39 0s-.13.06-.24.07 0-.19 0-.25a.66.66 0 01-.17-.24.46.46 0 00-.48-.28c-.11 0-.16 0-.24-.07a.28.28 0 00-.29 0 .92.92 0 01-.22.17c-.05 0-.06.06-.1.08s-.11 0-.15 0-.14.12-.22.12a1.41 1.41 0 00-.35.05 1.18 1.18 0 01-.27 0c-.11 0-.16.09-.23.17a.32.32 0 00-.08.25c0 .1.14.09.23.1s.09 0 .09 0v.14c0 .11-.11.14-.11.25s.45.07.53 0 0-.1.06-.13a.21.21 0 01.11-.08c.1-.05.12-.19.18-.27a1.12 1.12 0 01.47-.33h.26a.33.33 0 01-.14.27c-.07 0-.22-.05-.28 0s-.15 0-.22.15-.06.08 0 .13.06.1 0 .1a1.61 1.61 0 00.31 0 .78.78 0 01.3-.07c.12 0 .2 0 .11.13s-.38.05-.53.11l-.32.1h-.28l-.23.21c-.07.07-.23-.06-.29-.08s0-.39-.13-.52-.22 0-.28 0a.49.49 0 00-.29 0 2.47 2.47 0 01-.53.29 1.39 1.39 0 00-.26.1 1.46 1.46 0 01-.3 0 1.13 1.13 0 00-.26 0c-.16 0-.14.08-.21.2a1.06 1.06 0 01-.16.21c-.08.08-.11.19-.18.26s-.17-.11-.21-.13-.22.05-.28 0-.15-.12-.23 0-.15.13-.17.24a.37.37 0 01-.12.21c-.07.07-.19.13-.14.22a.54.54 0 01.06.3c0 .13.18.1.26.1H14c.14 0 .14 0 .23-.16s.09-.06.11-.1 0-.08 0-.1a.42.42 0 01.29 0 .26.26 0 00.27 0 .37.37 0 01.29 0c.07.07.11.17.18.25s0 .22 0 .29a.25.25 0 00.08.17c0 .05.1.12.08.17s0 .14-.1.2 0 .12 0 .15a.5.5 0 00.34-.16s0 .1.05.15a.6.6 0 00.16-.53c0-.08-.11-.12-.11-.22v-.14c0-.09 0-.11.07-.11s.2.3.2.47a3.32 3.32 0 010 .55c.11 0 .39 0 .44-.16s0-.16 0-.22.12 0 .18 0a.61.61 0 00-.05.3s-.06 0-.05.09 0 .13 0 .16.2.07.25.13a.14.14 0 01.06.13c0 .08 0 0 .12 0s.17.15.15.2a.46.46 0 01-.16.23 1.19 1.19 0 01-.58-.19.82.82 0 00-.25-.16.77.77 0 00-.26 0 1.24 1.24 0 01-.28 0 1 1 0 00-.15-.27c-.1-.1-.43-.07-.43-.3v-.14h.08a1.45 1.45 0 00.17.26c.09-.06.05-.16 0-.25l-.08-.09c-.07-.06 0-.05-.13-.05s0 .05-.09 0a.19.19 0 01-.08-.1c0-.07 0-.07-.1-.09a1.31 1.31 0 01-.12-.11 1.11 1.11 0 00-.26 0h-.39a.75.75 0 01-.26 0l-.35.04s-.15-.11-.17-.1l-.18.12-.7.48a4.67 4.67 0 00-.93.71l-.53.63a1.21 1.21 0 00-.1.5c0 .23-.07.46-.12.69a1.58 1.58 0 01-.09.31c0 .05 0 .16.05.23s.13.44.22.63.11.23.15.35a.58.58 0 010 .29c0 .14 0 .14.1.23s.14.07.29 0 .15-.05.27.06.15.07.27.08.56 0 .62 0 .12.16.21.19.26.11.31.18a1.22 1.22 0 010 .33.59.59 0 000 .26c.1.22.19.43.27.65s.22.33.22.5v.36a.84.84 0 01-.12.31c0 .09 0 .12.06.2l.22.38c.08.14.13.3.2.45.17.43.35.86.55 1.28.11.19.2.39.3.59a.49.49 0 00.22.1c.08 0 .17-.13.25-.16s.42-.21.63-.31.18-.36.22-.54 0-.1.14-.15.28-.2.21-.41c0-.05-.07-.1-.08-.13a1.22 1.22 0 010-.27c0-.2.11-.25.24-.38a.56.56 0 00.17-.48v-.76c0-.09-.3-.37-.2-.46l.39-.39a12.9 12.9 0 001-1 1.7 1.7 0 00.24-.53.89.89 0 01.09-.29c0-.05.2-.23.11-.27a.86.86 0 00-.67.21 1.12 1.12 0 01-.32 0c-.2-.1-.19-.35-.31-.49s-.12-.21-.21-.24-.11 0-.13 0 0-.17 0-.19a2.8 2.8 0 00-.19-.58.6.6 0 00-.14-.26c-.06-.08 0-.2 0-.29v-.28c0-.07.15-.2.21-.14s.12.43.16.57a2.75 2.75 0 00.21.61c.05.11.12.14.23.2s0 .16.08.24a3.63 3.63 0 00.1.45c0 .13.13.13.26.16s.22-.05.3-.08a2.63 2.63 0 01.3-.09 4.07 4.07 0 00.53-.31.54.54 0 01.28-.08c.07 0 .16-.18.19-.23s.14-.13.17-.2.1-.27 0-.27h-.13a.56.56 0 00-.09-.21c-.08-.08-.35 0-.47 0s-.15 0-.23-.13-.09-.19-.14-.29a.54.54 0 010-.19c.06 0 .17.06.2.13a1.12 1.12 0 010 .27 2.23 2.23 0 01.27 0c.14 0 .14 0 .23.11s.14.15.19.16l.33.05c.17 0 .32-.05.48 0s.17 0 .25.12a1.14 1.14 0 01.15.23c.08.13.07.15.22.16s.09 0 .11.13a1.88 1.88 0 00.12.59 4.1 4.1 0 00.35.5 4.37 4.37 0 00.31.44 1 1 0 00.28-.64c0-.08.05-.11.09-.17s.06-.13.06-.22a.52.52 0 01.21-.46c.12-.12.26-.21.39-.33a.57.57 0 01.44-.18c.1 0 .16 0 .21.1s0 .18 0 .25.05.08.07.09a.34.34 0 01.12 0c.05.05.06.19.09.26s.22.24.36.05a1.7 1.7 0 00.16.48 1.56 1.56 0 01.15.52 2.53 2.53 0 00.22.51c.1.15.19.36.38.4s.14 0 .11-.1-.07-.05-.07-.08v-.17a1 1 0 00-.19-.5.72.72 0 00-.22-.17.57.57 0 01-.11-.22.45.45 0 01.14-.46c.13.13.3.42.48.44s.16-.11.24-.19.08 0 .12-.06a.27.27 0 00.1-.16c.08-.23-.06-.46-.13-.67a1.21 1.21 0 01-.06-.38c0-.07.18-.2.22-.26s.11.08.06.14 0 .12 0 .17.14 0 .18-.07 0-.16 0-.19a.29.29 0 01.23-.28c.1 0 .22-.21.3-.29a.72.72 0 00.11-.35 1.45 1.45 0 000-.46 1.4 1.4 0 00-.3-.8s.14-.14.07-.2-.18 0-.23.1-.13-.21-.06-.26a.54.54 0 00.12-.09c.07-.07.06-.06.13 0a1.8 1.8 0 00.2.19c.08.07.07.18.09.3s.05.07.08.1.06 0 .09 0 .17-.12.17-.21v-.29a.44.44 0 01-.17-.3.68.68 0 01.12-.54c.1-.11.1-.09 0-.23s-.07-.06-.06-.08a.25.25 0 000-.17c0-.2.11-.34 0-.56a1.5 1.5 0 00-.29-.56l-.22-.21c-.05-.05-.19-.12-.23-.19s0-.11 0-.14-.08-.08-.1-.11-.17.07-.24.07 0-.26 0-.29a.24.24 0 01.2-.17c.12 0 .19 0 .28-.1s.06-.16.14-.25a2.68 2.68 0 01.25.37l.07.14h.09c.02 0 .07.11.21.11s.29.14.44.14.16 0 .16-.1l-.11-.18m-9.76 1.31c.08 0 .06.06 0 .08s-.08 0 0-.08m.48 2.35c-.11.13-.39-.11-.54-.09s-.21 0-.18-.11.06-.2.13-.24.17-.11.23-.08a.24.24 0 01.07.12c0 .05.05 0 .11 0s.15 0 .2.14a.21.21 0 010 .23m1-.08a.24.24 0 00-.06.25.26.26 0 010 .28c0 .07 0 .24-.18.22s-.15.06-.22-.07 0-.14.09-.14.06-.16.05-.24a.83.83 0 010-.28.21.21 0 01.18-.18c.1 0 .25 0 .19.16M15.11 18.28s.1-.05.12 0h.15c.1 0 .13 0 .15.17s0 .15 0 .19a.48.48 0 01-.24.07.64.64 0 00-.24 0c-.09.05-.14.08-.2 0s.06-.15.15-.22a1.46 1.46 0 00.16-.21\" />\n          <path d=\"M17.87 28.88c0-.13 0-.15.14-.19s.16.11.18.16a1.17 1.17 0 01.06.62c0 .08-.11.18-.15.25a.7.7 0 00-.1.28.82.82 0 000 .3c0 .07.1.21 0 .26s-.15.17-.19.14a2.39 2.39 0 01-.23-.22c-.12-.13-.07-.39-.07-.55a1.48 1.48 0 000-.3.34.34 0 010-.26.44.44 0 01.14-.25c.09-.06.12-.15.22-.19M21.83 26.05a2.84 2.84 0 00.19-.23c.09 0 0 .22 0 .32s0 .26-.18.2-.06-.22-.05-.29M23.6 26.39a.88.88 0 01.51.09 1.8 1.8 0 01.37.36c.12.12.24.22.36.35s0 .36 0 .46-.27-.25-.28-.3-.22-.27-.3-.44-.26-.31-.34-.31a1.77 1.77 0 01-.23 0c-.06 0-.13-.15-.06-.2M25 27.41c.05.1.08.21.12.31s.25.09.31.09.22 0 .28.08 0 .25-.08.21-.13-.13-.26-.13a.61.61 0 01-.3-.08c-.1 0-.22-.08-.12-.19s0-.21 0-.29M25.87 28.1a.26.26 0 01.22.06 1.5 1.5 0 00.22 0 .64.64 0 01.24 0c.12 0 .13.07 0 .15s-.36-.05-.45-.07a.59.59 0 00-.22-.05c-.07 0-.17-.1-.05-.15M26.93 28.37h.19c.04 0 .06.15-.06.16s-.1 0-.18 0-.11 0-.18.06a1.08 1.08 0 01-.18 0c-.06 0-.12-.13 0-.13a.83.83 0 00.44-.08M25.23 26.51a.78.78 0 00.44-.18c.07-.06.15-.11.22-.18s.13-.2.23-.15.24.1.22.14-.08.09-.18.16-.05.15 0 .21.06.15 0 .26-.16.17-.16.23-.08.13-.11.22-.09.12-.16.05a.3.3 0 00-.23-.11c-.06 0-.21.07-.26 0s-.06-.21-.09-.24a.57.57 0 01-.06-.25c0-.12 0-.17.14-.2M27 26.82a.81.81 0 00-.55.09.51.51 0 00-.21.44.69.69 0 000 .25s.16.18.22.17-.15-.29-.06-.43c.07 0 .07.08.1.15s0 .1.15.13.17 0 .13-.07a.22.22 0 00-.15-.13c-.18-.09.14-.08.2-.13s-.17-.1-.25-.13a.23.23 0 01.22-.16c.09 0 .29-.09.18-.18M27.12 26.39c.06 0 .18 0 .18.08v.16c0 .06.08 0 .13.07s-.05.16-.08.2-.28-.07-.32-.15.07-.24.11-.36M26.75 25.57c0-.08.09-.21.17-.19s.08.18 0 .25.07.15.07.26.1.25 0 .28-.13-.06-.24-.12a.34.34 0 00-.15 0h-.09a.11.11 0 010-.19c.11 0 .18-.09.28 0s.07-.11.06-.17-.06-.08-.08-.14M26.55 25.21c.06 0 .21.17.09.19s-.2-.13-.09-.19M26.76 25s.12.13.12.17-.11.05-.17.05-.08-.34.05-.22M26.4 24.25a.32.32 0 01.21.13c.07.09 0 .12-.07.18s.05.2.07.25 0 .2 0 .19a.4.4 0 01-.26-.1c-.08-.08 0-.13 0-.22s-.14-.38.08-.43M26.52 23.35a.38.38 0 01.05-.19c.06-.07.13.05.14.1a.78.78 0 01.06.37c0 .16-.17.18-.29.08a.74.74 0 010-.36M27.59 26.77c-.16-.26.08-.25.29-.22s.11.08.15.16 0 .07 0 .1 0 .11.07.15.36-.19.51-.06.26.33.43.44a1 1 0 01.26.16s.05.08.09.1.08 0 .13.07l.3.57c.05.09.27.5.09.56s-.16-.2-.18-.27-.19 0-.27-.05-.16-.25-.28-.26-.17.22-.34.11-.18-.21-.33-.26-.31-.12-.23-.27a.24.24 0 000-.18.26.26 0 00-.1-.19.63.63 0 00-.37-.17c-.05 0-.16 0-.2-.05l-.13-.16c-.04-.05-.12-.09 0-.14a.36.36 0 01.2-.06c0-.06 0-.07-.06-.08M29.88 27c.16 0 .44.17.37.35s-.08.1-.14.08-.05-.07-.08-.12 0-.13-.06-.14-.09 0-.09-.11M29.85 27.43v-.09c0-.03.11.09.1.17a.27.27 0 010 .12s-.07 0-.09.07-.19.05-.14-.07.17-.06.15-.2M30.28 27.44c.17-.06.16.34 0 .4s-.16-.32 0-.4M30.33 28a.2.2 0 01.15-.1 1.77 1.77 0 010 .23c0 .05 0 .22-.08.25s-.08-.12-.1-.16-.06-.06 0-.13a.12.12 0 01.08-.09M27.29 28.59a2.48 2.48 0 00.27 0h.31c.1 0 .09.08.09.19s-.08.12-.16.21.08.36.19.48.12.11.19 0a1 1 0 00.16-.29 1.75 1.75 0 00.11-.24c0-.1 0-.25.14-.31s.17.39.18.54a.34.34 0 00.06.26.39.39 0 010 .35 1.23 1.23 0 00.05.57A1.58 1.58 0 0129 31c0 .1 0 .18-.07.29s-.11.15-.15.24-.11.2-.15.29-.14.13-.19.21a2.2 2.2 0 01-.15.26.6.6 0 01-.21.21 5.32 5.32 0 01-.47.36.48.48 0 01-.26.06h-.32c-.13 0-.14 0-.24-.07s-.07-.19-.08-.27a2.14 2.14 0 010-.62c-.1 0-.15.14-.23.1s-.08-.14-.14-.25-.16-.38-.42-.41a4 4 0 00-1.2.11.72.72 0 01-.21-.12.19.19 0 01-.06-.26.94.94 0 00.13-.24c0-.11 0-.22.05-.33s.09-.13.12-.23.05-.19.11-.3a.71.71 0 01.38-.38 4.53 4.53 0 00.55-.23.34.34 0 01.14 0c.06 0 .07-.05.11-.08s.16-.13.23-.2a.91.91 0 01.55-.23c.22 0 .34-.21.51-.31M26.59 33.2h.18c.07 0 0 .08 0 .09a.22.22 0 00.13 0s.15-.1.21-.09a.09.09 0 010 .16c0 .06-.11.11-.16.18s-.06.16-.11.19-.29.05-.28-.14a.16.16 0 01-.24-.13c0-.09.13-.22.2-.25M16.39 16.68a.66.66 0 01.24 0c.1 0 .13 0 .22-.07s0 .19 0 .24a.41.41 0 01-.35.13c-.12 0-.25 0-.25-.13s.11-.15.18-.2M26.18 18.47a3.16 3.16 0 01.66.51c.08.07.09.08.1.18a.21.21 0 00.11.16c.06.05.35.22.2.32a.88.88 0 01-.4-.12c-.09-.07-.08-.29-.15-.39s-.46-.36-.59-.63h.07M27.58 18.53s.29.13.15.16-.22.06-.3 0 .09-.09.15-.13M27.7 18.85c.07 0 .07.07 0 .1s-.14 0-.2 0 0-.1 0-.11a.37.37 0 01.18 0M27.23 19.72a1.86 1.86 0 00.19.11c.06 0 .28-.09.31 0s.16.1 0 .18-.19.09-.23.16 0 .22-.1.19-.11-.2-.14-.31-.31-.31 0-.33M27.7 20.19c.08.06 0 .17 0 .24s.14.06.15.15 0 .21 0 .29a.75.75 0 010 .3V21.38c0 .03-.06 0-.07.06s0 .09-.05.15-.1.07-.18.12a1.1 1.1 0 01-.37.16c0 .07 0 .24-.14.18s0-.2 0-.26a2.93 2.93 0 01.19-.26c.05-.09.16-.09.25-.09s-.19-.16-.19-.24.19-.19.21-.28-.07-.29 0-.37.06-.35.19-.36M27.51 21.9c-.1 0-.39.14-.28.19s.32-.06.28-.19M27.15 22.17v-.09c-.06.05-.23.25-.17.32s.11-.06.13-.09.16-.06.08-.14M28.78 17a.51.51 0 00.48-.21.47.47 0 01.21-.16 2.6 2.6 0 00.25-.1 2.49 2.49 0 00.29-.11.92.92 0 01.24-.13.79.79 0 01.56.09c.12.06.39.07.45.23s0 .15.06.25a.55.55 0 01.09.28s-.05.06-.05.09v.18c0 .08-.13.16-.18.21a.28.28 0 01-.23.11c-.05 0-.07-.31-.08-.36s-.1 0-.13.08a.44.44 0 01-.08-.11l-.26.14a.66.66 0 01-.28 0h-.64a1 1 0 01-.25 0s-.1-.06-.13 0a.29.29 0 01-.11.11 1.73 1.73 0 01-.4 0 1.27 1.27 0 01-.34 0c.11-.22.44-.26.56-.49M30 19.08c.08 0 .17.05.19.14s-.16.08-.22.07-.22-.07-.19-.14.15-.07.22-.07M29.56 19.29c.08 0 .13 0 .18.07s0 .13-.11.11-.19 0-.23-.07.07-.06.16-.11M32.57 20.63c.1 0 .1.06.17.15s.13.17 0 .22-.14-.11-.17-.17-.13-.12 0-.2M33.61 17.47c0-.07 0-.09.11-.08s.09 0 .14.07.13.21.06.33-.16.1-.27 0-.07-.25 0-.33M34.5 16.28a1 1 0 01.27-.3c.08 0 .39-.09.34.05h-.21c-.06 0-.1.1-.14.14a1.49 1.49 0 01-.12.14c-.07.05-.2.05-.14-.06M35 16.24a.39.39 0 01.3 0c.06 0 0-.17.08-.22s.09-.18.18-.22a.79.79 0 01.34-.06c.21 0 .4-.08.58.05s.1 0 .22 0a.41.41 0 01.3.06l.28.16c.09.06.16.13.24.19s.17 0 .25 0a.76.76 0 01.3.14c.12.09.1.11.11.26a.86.86 0 00.12.3v.25a2.12 2.12 0 01.14.31.4.4 0 00.14.22.36.36 0 01.14.23c0 .26-.17.31-.39.31a1.56 1.56 0 01-.56-.12 1.44 1.44 0 01-.53-.38 1.34 1.34 0 00-.21-.2c-.08-.07-.19-.07-.19-.17s.07-.23 0-.24l-.35-.06a2.37 2.37 0 00-.53 0c-.09 0-.23 0-.29.05s0 .08 0 .1-.13 0-.15 0c0 .31.35.15.53.22a4.36 4.36 0 00.59.17.25.25 0 01.21.15.37.37 0 00.23.19l.29.11c.12 0 .14.14 0 .18s-.18 0-.21.08 0 .2 0 .3 0 .2-.13.18a1.76 1.76 0 01-.3-.1c-.14-.05-.59.12-.58-.16 0-.09.09-.15.13-.24s-.08-.13-.16-.18a.9.9 0 00-.32-.09.67.67 0 01-.3-.18s-.1 0-.11-.09a1.42 1.42 0 00-.08-.18c-.08-.16-.13-.17-.31-.18s-.16-.16-.19-.27v-.17c0-.11 0-.06-.1-.07s-.07-.05-.08-.14-.11-.1-.08-.16.23 0 .23.08.08-.13.08-.19a1.74 1.74 0 01.13-.2M39 16.78c.1-.09.18-.12.29 0s.25.1.34.18a1.28 1.28 0 01.26.26c.05.05.08.08 0 .13a.27.27 0 01-.16 0c-.15 0-.18-.08-.31-.14s-.06-.09-.13-.13a.18.18 0 00-.16 0c-.13 0-.22 0-.29-.07s0-.15 0-.15.14 0 .16-.12M34.31 16.87c.06-.1.08-.21.21-.12s0 .19 0 .26-.2-.05-.2-.14M34 17.25a.65.65 0 01.17-.2c.07-.07.21-.06.18.05a1.28 1.28 0 01-.14.23c-.08.13-.18 0-.21-.08M34.51 17.18c.13-.08.21 0 .22.15s0 .22-.06.35a.35.35 0 01-.25-.19c-.05 0 0-.11.06-.13s0-.14 0-.18M34.13 17.52a.15.15 0 01.25 0c.06.07.07.07 0 .17a.26.26 0 000 .15.16.16 0 00.13.07c.07 0 .1 0 .12.09s.09.07.12.11 0 .09-.07.13-.21 0-.32 0a.63.63 0 01-.32-.12v-.3c0-.06-.12-.24 0-.31\" />\n          <path d=\"M43.44 28.19a2.19 2.19 0 01-.25-.48c0-.05-.17-.12-.22-.14a.63.63 0 00-.23-.08c-.16 0-.32-.11-.48-.15a.9.9 0 00-.21-.08h-.28a.45.45 0 00-.05-.42c-.07-.12-.15-.29-.3-.31a.82.82 0 01-.42-.16.75.75 0 01-.13-.18.52.52 0 00-.19-.14l-.36-.27a1.21 1.21 0 00-.37-.28l-.19-.07c-.09-.05-.14-.12-.22-.05s-.22.25-.36.22c0-.08.13-.1.17-.18s.07-.07 0-.12-.07-.09-.11-.07a2.1 2.1 0 01-.61.15c-.09 0-.11.14-.18.19s0 0-.06 0h-.06s-.08.11-.13.09-.17-.07-.25 0-.21.13-.27.1a.37.37 0 01-.24-.12.65.65 0 010-.28c0-.19.11-.46-.18-.46s-.41.23-.53 0 .33-.4.06-.51-.39.1-.54.16a.23.23 0 01-.29 0 2.27 2.27 0 01-.18-.25.38.38 0 01-.09-.27c0-.12 0-.15.07-.26a.76.76 0 01.13-.29c.09-.09.16 0 .29 0s.18-.07.24-.09a1.87 1.87 0 01.32-.08.45.45 0 01.28-.05.43.43 0 01.24.2c.06.08 0 .17 0 .26s.09.23.17.14a.41.41 0 00.08-.55.3.3 0 01-.09-.21.48.48 0 01.09-.26 4.48 4.48 0 00.32-.44c.07-.1.06-.35.1-.48s.08-.36.22-.43.09-.28.18-.42.21-.27.33-.41a.31.31 0 00.07-.2c0-.08-.17-.1-.11-.18s.08 0 .11-.05 0-.06-.05-.07a.24.24 0 00-.23.06c0 .06.1.06.07.14s-.08.17-.15.08 0-.11-.14-.14a.89.89 0 00-.23 0c.05-.07.09-.16.18-.16s.19-.06.3-.06.44-.1.45-.29-.08-.16-.14-.24-.05-.09-.08-.11-.12 0-.16 0-.39-.12-.55-.15a.76.76 0 01-.48-.34c0-.07-.09-.16-.18-.09a.22.22 0 01-.27 0 1 1 0 00-.59-.1c-.13 0-.16 0-.18.16s0 .14.12.22 0 .15.1.21.14.11.15.18a1.28 1.28 0 010 .55c-.1-.07-.18-.19-.3-.22s-.23 0-.35-.07l-.34-.19h-.16l-.14-.15c-.12-.1-.1-.16 0-.25s.22-.17.23-.31-.1-.27-.06-.31a2.13 2.13 0 01.35-.14c-.07-.16-.34-.25-.48-.35a2.07 2.07 0 01-.24-.17c-.08-.08-.08-.16-.2-.21s-.18-.05-.19.07a.69.69 0 00.06.31c0 .09.15.17.08.27s-.17.08-.28.1a1 1 0 01-.57-.06l-.27-.15c-.1-.06-.14-.13-.25-.16s-.39 0-.58-.07-.35-.2-.53-.31a1 1 0 01-.18-.1s-.12-.1-.16-.11-.33.09-.47.13-.32.05-.43.13-.06.14-.08.21-.07.09-.16.1-.08 0-.11.11-.08.09-.13.14a.47.47 0 00-.05.42c0 .11.08.12 0 .2s-.06.08-.18.06-.31 0-.41.06.08.1.1.11.08 0 .11 0a.46.46 0 00.32.05c.11 0 .13-.13.24 0s.2 0 .27 0a1.54 1.54 0 01.64 0c.21 0 .31.23.4.41.19.34.29.74.48 1.09 0 .05.07 0 .09.1a.28.28 0 010 .12v1.03a.53.53 0 000 .25c.05.09.13.17.18.26l.15.3a2.85 2.85 0 01.17.26 3.17 3.17 0 00.28.55c.11.16.19.38.37.49s0-.22 0-.25-.12-.13-.1-.24 0-.15-.11-.24l-.06-.35c-.07-.1 0-.17.07-.13s.12.11.16.2a.68.68 0 00.14.25c.06.09.08.18.15.27s.13.11.17.18.08.23.15.29.2 0 .24.1.09.2.13.29a1.11 1.11 0 00.9.71 1.46 1.46 0 01.29 0 .88.88 0 01.28.17 1.57 1.57 0 00.51.27h.27c.09 0 .08.17.18.23a.81.81 0 00.27.11h.11s0 .11.07.14.12-.07.15-.14.12-.15.23-.06a.47.47 0 01.19.52c0 .08-.12.15-.15.23S38 26.9 38 27a1 1 0 000 .57 1.07 1.07 0 01.06.3.81.81 0 00.08.34 1.57 1.57 0 01.07.57 1 1 0 000 .3.74.74 0 00.16.27 2.5 2.5 0 00.22.24v.28a1.8 1.8 0 010 .22c0 .07-.06.12-.07.19a1.19 1.19 0 01-.14.4c0 .06 0 .12-.07.19s-.1.06-.12.11a.76.76 0 01-.08.21s-.09.11-.09.17a1.5 1.5 0 000 .2v.16l-.2.31a2 2 0 00-.2.41 1.61 1.61 0 01-.24.34c.06 0 .13.09.1.14s-.14.08-.19.12-.25.16-.28.28.07.32 0 .41-.23.22-.06.29c-.1.15-.19.27-.05.43s.15.12.17.16a1.61 1.61 0 010 .22c.07 0 .12-.07.17 0l.12.07h.11c.09 0 0-.05 0-.12v-.11-.13c-.07-.19-.12.06-.2-.05a.81.81 0 01.09-.1c.06-.06 0 0 .11-.06s.15-.08.21-.2.19-.35.29-.53a2.06 2.06 0 01.45-.52 1.5 1.5 0 01.44-.32 2.72 2.72 0 00.58-.24 5.93 5.93 0 00.44-.43c.15-.15.37-.16.53-.3a.84.84 0 01.29-.13 1.12 1.12 0 00.28-.16c.15-.09.3-.2.45-.3s.27-.29.43-.35a1.36 1.36 0 00.41-.28 1.05 1.05 0 00.39-.42.64.64 0 01.13-.26c.06-.07 0-.16.07-.24a1.29 1.29 0 01.33-.46 2.34 2.34 0 00.3-.47 1.34 1.34 0 01.13-.23c0-.14 0-.17-.07-.28M37.56 21c0-.05.12 0 .17-.08a.13.13 0 01.17.06c0 .09-.34.09-.4.06s0 0 .06 0m-.56-.18a.9.9 0 01.23.08c.06 0 .29.1.15.15s-.2 0-.27-.07-.3-.12-.11-.16m-.15.07c-.06.08-.22.45-.36.36 0-.05.06-.07.07-.12a1 1 0 000-.18c0-.1.19-.2.25-.06m-.63-.31c.11 0 .22 0 .3-.06s-.18-.13-.09-.23.23.09.28.12a.49.49 0 01.13.31h-.34c-.12 0-.33 0-.28-.1\" />\n          <path d=\"M39 20.55a.45.45 0 01-.16.2c-.12 0 0-.14 0-.2s.1-.19.18-.16.07.11 0 .16M39.06 19.79c0-.05.09-.18.15-.11s0 .15-.06.2.32 0 .35.14a.13.13 0 01-.08.17c-.08 0-.11 0-.14-.1s-.29.15-.37 0 .1-.27.15-.32M37.64 24.16a1.4 1.4 0 00.51.17.17.17 0 01.17.14c0 .05-.22.05-.25.05a1.28 1.28 0 01-.51-.21.2.2 0 01-.11-.19c0-.12.13 0 .19 0M38.91 24.45c.14 0 .33 0 .37.15s-.1 0-.11 0h-.23a.35.35 0 01-.2-.05s-.07-.1-.13-.14.11-.07.13-.07.13 0 .17.11M39.48 24.64h.15c.07 0 .09.08.09.12s-.22 0-.26-.07 0 0 0-.05M36 18.6c.1 0 .19 0 .22.11s0 .19-.11.14a.32.32 0 01-.22-.15v-.13a.18.18 0 00.11 0\" />\n        </g>\n      </g>\n    </svg>\n  )\n}\n","import React from \"react\"\nimport Logo from \"../components/svg/logo\"\nimport { Link } from \"gatsby\"\n\nexport default function HomepageLogoLink({ passedRef, path, classes }) {\n  return (\n    <Link\n      className={\"homepage-logo-link\" + (classes ? \" \" + classes : \"\")}\n      to=\"/\"\n      aria-current={path === \"/\" ? \"page\" : null}\n      aria-label=\"Go to the homepage\"\n      ref={passedRef ? passedRef : null}\n    >\n      <Logo />\n      <div className=\"homepage-logo-link__text\">\n        <div className=\"homepage-logo-link__text__title\">\n          Crisis Upon Crisis\n        </div>\n        <div className=\"homepage-logo-link__text__subtitle\">\n          IMF Annual Report 2022\n        </div>\n      </div>\n    </Link>\n  )\n}\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\n\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\n\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\n\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\n\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n *   const ownRef = useRef();\n *   const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n *   return <div ref={domRef}>...</div>\n * }\n */\n\nexport function useMergeRefs(refs, defaultValue) {\n  return useCallbackRef(defaultValue || null, function (newValue) {\n    return refs.forEach(function (ref) {\n      return assignRef(ref, newValue);\n    });\n  });\n}","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\n\nexport function useCallbackRef(initialValue, callback) {\n  var ref = useState(function () {\n    return {\n      // value\n      value: initialValue,\n      // last callback\n      callback: callback,\n      // \"memoized\" public interface\n      facade: {\n        get current() {\n          return ref.value;\n        },\n\n        set current(value) {\n          var last = ref.value;\n\n          if (last !== value) {\n            ref.value = value;\n            ref.callback(value, last);\n          }\n        }\n\n      }\n    };\n  })[0]; // update callback\n\n  ref.callback = callback;\n  return ref.facade;\n}","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n\n  return ref;\n}","import * as React from 'react';\nexport var hiddenGuard = {\n  width: '1px',\n  height: '0px',\n  padding: 0,\n  overflow: 'hidden',\n  position: 'fixed',\n  top: '1px',\n  left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n  var children = _ref.children;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    key: \"guard-first\",\n    \"data-focus-guard\": true,\n    \"data-focus-auto-guard\": true,\n    style: hiddenGuard\n  }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n    key: \"guard-last\",\n    \"data-focus-guard\": true,\n    \"data-focus-auto-guard\": true,\n    style: hiddenGuard\n  }));\n};\n\nInFocusGuard.defaultProps = {\n  children: null\n};\nexport default InFocusGuard;","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar extendStatics = function (d, b) {\n  extendStatics = Object.setPrototypeOf || {\n    __proto__: []\n  } instanceof Array && function (d, b) {\n    d.__proto__ = b;\n  } || function (d, b) {\n    for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n  };\n\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n\n  function __() {\n    this.constructor = d;\n  }\n\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nexport var __assign = function () {\n  __assign = Object.assign || function __assign(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n\n    return t;\n  };\n\n  return __assign.apply(this, arguments);\n};\nexport function __rest(s, e) {\n  var t = {};\n\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length,\n      r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n      d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n  return function (target, key) {\n    decorator(target, key, paramIndex);\n  };\n}\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function (resolve) {\n      resolve(value);\n    });\n  }\n\n  return new (P || (P = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\nexport function __generator(thisArg, body) {\n  var _ = {\n    label: 0,\n    sent: function () {\n      if (t[0] & 1) throw t[1];\n      return t[1];\n    },\n    trys: [],\n    ops: []\n  },\n      f,\n      y,\n      t,\n      g;\n  return g = {\n    next: verb(0),\n    \"throw\": verb(1),\n    \"return\": verb(2)\n  }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n    return this;\n  }), g;\n\n  function verb(n) {\n    return function (v) {\n      return step([n, v]);\n    };\n  }\n\n  function step(op) {\n    if (f) throw new TypeError(\"Generator is already executing.\");\n\n    while (_) try {\n      if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n      if (y = 0, t) op = [op[0] & 2, t.value];\n\n      switch (op[0]) {\n        case 0:\n        case 1:\n          t = op;\n          break;\n\n        case 4:\n          _.label++;\n          return {\n            value: op[1],\n            done: false\n          };\n\n        case 5:\n          _.label++;\n          y = op[1];\n          op = [0];\n          continue;\n\n        case 7:\n          op = _.ops.pop();\n\n          _.trys.pop();\n\n          continue;\n\n        default:\n          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n            _ = 0;\n            continue;\n          }\n\n          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n            _.label = op[1];\n            break;\n          }\n\n          if (op[0] === 6 && _.label < t[1]) {\n            _.label = t[1];\n            t = op;\n            break;\n          }\n\n          if (t && _.label < t[2]) {\n            _.label = t[2];\n\n            _.ops.push(op);\n\n            break;\n          }\n\n          if (t[2]) _.ops.pop();\n\n          _.trys.pop();\n\n          continue;\n      }\n\n      op = body.call(thisArg, _);\n    } catch (e) {\n      op = [6, e];\n      y = 0;\n    } finally {\n      f = t = 0;\n    }\n\n    if (op[0] & 5) throw op[1];\n    return {\n      value: op[0] ? op[1] : void 0,\n      done: true\n    };\n  }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n    desc = {\n      enumerable: true,\n      get: function () {\n        return m[k];\n      }\n    };\n  }\n\n  Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator,\n      m = s && o[s],\n      i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n    next: function () {\n      if (o && i >= o.length) o = void 0;\n      return {\n        value: o && o[i++],\n        done: !o\n      };\n    }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o),\n      r,\n      ar = [],\n      e;\n\n  try {\n    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  } catch (error) {\n    e = {\n      error: error\n    };\n  } finally {\n    try {\n      if (r && !r.done && (m = i[\"return\"])) m.call(i);\n    } finally {\n      if (e) throw e.error;\n    }\n  }\n\n  return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n\n  return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n  for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n  return r;\n}\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n    if (ar || !(i in from)) {\n      if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n      ar[i] = from[i];\n    }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []),\n      i,\n      q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n    return this;\n  }, i;\n\n  function verb(n) {\n    if (g[n]) i[n] = function (v) {\n      return new Promise(function (a, b) {\n        q.push([n, v, a, b]) > 1 || resume(n, v);\n      });\n    };\n  }\n\n  function resume(n, v) {\n    try {\n      step(g[n](v));\n    } catch (e) {\n      settle(q[0][3], e);\n    }\n  }\n\n  function step(r) {\n    r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n  }\n\n  function fulfill(value) {\n    resume(\"next\", value);\n  }\n\n  function reject(value) {\n    resume(\"throw\", value);\n  }\n\n  function settle(f, v) {\n    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n  }\n}\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n    throw e;\n  }), verb(\"return\"), i[Symbol.iterator] = function () {\n    return this;\n  }, i;\n\n  function verb(n, f) {\n    i[n] = o[n] ? function (v) {\n      return (p = !p) ? {\n        value: __await(o[n](v)),\n        done: n === \"return\"\n      } : f ? f(v) : v;\n    } : f;\n  }\n}\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator],\n      i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n    return this;\n  }, i);\n\n  function verb(n) {\n    i[n] = o[n] && function (v) {\n      return new Promise(function (resolve, reject) {\n        v = o[n](v), settle(resolve, reject, v.done, v.value);\n      });\n    };\n  }\n\n  function settle(resolve, reject, d, v) {\n    Promise.resolve(v).then(function (v) {\n      resolve({\n        value: v,\n        done: d\n      });\n    }, reject);\n  }\n}\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) {\n    Object.defineProperty(cooked, \"raw\", {\n      value: raw\n    });\n  } else {\n    cooked.raw = raw;\n  }\n\n  return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n  Object.defineProperty(o, \"default\", {\n    enumerable: true,\n    value: v\n  });\n} : function (o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n\n  __setModuleDefault(result, mod);\n\n  return result;\n}\nexport function __importDefault(mod) {\n  return mod && mod.__esModule ? mod : {\n    default: mod\n  };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}","import { __assign } from \"tslib\";\n\nfunction ItoI(a) {\n  return a;\n}\n\nfunction innerCreateMedium(defaults, middleware) {\n  if (middleware === void 0) {\n    middleware = ItoI;\n  }\n\n  var buffer = [];\n  var assigned = false;\n  var medium = {\n    read: function () {\n      if (assigned) {\n        throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n      }\n\n      if (buffer.length) {\n        return buffer[buffer.length - 1];\n      }\n\n      return defaults;\n    },\n    useMedium: function (data) {\n      var item = middleware(data, assigned);\n      buffer.push(item);\n      return function () {\n        buffer = buffer.filter(function (x) {\n          return x !== item;\n        });\n      };\n    },\n    assignSyncMedium: function (cb) {\n      assigned = true;\n\n      while (buffer.length) {\n        var cbs = buffer;\n        buffer = [];\n        cbs.forEach(cb);\n      }\n\n      buffer = {\n        push: function (x) {\n          return cb(x);\n        },\n        filter: function () {\n          return buffer;\n        }\n      };\n    },\n    assignMedium: function (cb) {\n      assigned = true;\n      var pendingQueue = [];\n\n      if (buffer.length) {\n        var cbs = buffer;\n        buffer = [];\n        cbs.forEach(cb);\n        pendingQueue = buffer;\n      }\n\n      var executeQueue = function () {\n        var cbs = pendingQueue;\n        pendingQueue = [];\n        cbs.forEach(cb);\n      };\n\n      var cycle = function () {\n        return Promise.resolve().then(executeQueue);\n      };\n\n      cycle();\n      buffer = {\n        push: function (x) {\n          pendingQueue.push(x);\n          cycle();\n        },\n        filter: function (filter) {\n          pendingQueue = pendingQueue.filter(filter);\n          return buffer;\n        }\n      };\n    }\n  };\n  return medium;\n}\n\nexport function createMedium(defaults, middleware) {\n  if (middleware === void 0) {\n    middleware = ItoI;\n  }\n\n  return innerCreateMedium(defaults, middleware);\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function createSidecarMedium(options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var medium = innerCreateMedium(null);\n  medium.options = __assign({\n    async: true,\n    ssr: false\n  }, options);\n  return medium;\n}","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n  var target = _ref.target,\n      currentTarget = _ref.currentTarget;\n  return {\n    target: target,\n    currentTarget: currentTarget\n  };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n  async: true\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n  var _extends2;\n\n  var _React$useState = React.useState(),\n      realObserved = _React$useState[0],\n      setObserved = _React$useState[1];\n\n  var observed = React.useRef();\n  var isActive = React.useRef(false);\n  var originalFocusedElement = React.useRef(null);\n  var children = props.children,\n      disabled = props.disabled,\n      noFocusGuards = props.noFocusGuards,\n      persistentFocus = props.persistentFocus,\n      crossFrame = props.crossFrame,\n      autoFocus = props.autoFocus,\n      allowTextSelection = props.allowTextSelection,\n      group = props.group,\n      className = props.className,\n      whiteList = props.whiteList,\n      hasPositiveIndices = props.hasPositiveIndices,\n      _props$shards = props.shards,\n      shards = _props$shards === void 0 ? emptyArray : _props$shards,\n      _props$as = props.as,\n      Container = _props$as === void 0 ? 'div' : _props$as,\n      _props$lockProps = props.lockProps,\n      containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n      SideCar = props.sideCar,\n      shouldReturnFocus = props.returnFocus,\n      focusOptions = props.focusOptions,\n      onActivationCallback = props.onActivation,\n      onDeactivationCallback = props.onDeactivation;\n\n  var _React$useState2 = React.useState({}),\n      id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n  var onActivation = React.useCallback(function () {\n    originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n    if (observed.current && onActivationCallback) {\n      onActivationCallback(observed.current);\n    }\n\n    isActive.current = true;\n  }, [onActivationCallback]);\n  var onDeactivation = React.useCallback(function () {\n    isActive.current = false;\n\n    if (onDeactivationCallback) {\n      onDeactivationCallback(observed.current);\n    }\n  }, [onDeactivationCallback]);\n  useEffect(function () {\n    if (!disabled) {\n      // cleanup return focus on trap deactivation\n      // sideEffect/returnFocus should happen by this time\n      originalFocusedElement.current = null;\n    }\n  }, []);\n  var returnFocus = React.useCallback(function (allowDefer) {\n    var returnFocusTo = originalFocusedElement.current;\n\n    if (returnFocusTo && returnFocusTo.focus) {\n      var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n      if (howToReturnFocus) {\n        var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n        originalFocusedElement.current = null;\n\n        if (allowDefer) {\n          // React might return focus after update\n          // it's safer to defer the action\n          Promise.resolve().then(function () {\n            return returnFocusTo.focus(returnFocusOptions);\n          });\n        } else {\n          returnFocusTo.focus(returnFocusOptions);\n        }\n      }\n    }\n  }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n  var onFocus = React.useCallback(function (event) {\n    if (isActive.current) {\n      mediumFocus.useMedium(event);\n    }\n  }, []);\n  var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n  // not using real refs due to race conditions\n\n  var setObserveNode = React.useCallback(function (newObserved) {\n    if (observed.current !== newObserved) {\n      observed.current = newObserved;\n      setObserved(newObserved);\n    }\n  }, []);\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof allowTextSelection !== 'undefined') {\n      // eslint-disable-next-line no-console\n      console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n    }\n\n    React.useEffect(function () {\n      if (!observed.current) {\n        // eslint-disable-next-line no-console\n        console.error('FocusLock: could not obtain ref to internal node');\n      }\n    }, []);\n  }\n\n  var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n  var hasLeadingGuards = noFocusGuards !== true;\n  var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n  var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n  /*#__PURE__*/\n  // nearest focus guard\n  React.createElement(\"div\", {\n    key: \"guard-first\",\n    \"data-focus-guard\": true,\n    tabIndex: disabled ? -1 : 0,\n    style: hiddenGuard\n  }), // first tabbed element guard\n  hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n    key: \"guard-nearest\",\n    \"data-focus-guard\": true,\n    tabIndex: disabled ? -1 : 1,\n    style: hiddenGuard\n  }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n    id: id,\n    sideCar: mediumSidecar,\n    observed: realObserved,\n    disabled: disabled,\n    persistentFocus: persistentFocus,\n    crossFrame: crossFrame,\n    autoFocus: autoFocus,\n    whiteList: whiteList,\n    shards: shards,\n    onActivation: onActivation,\n    onDeactivation: onDeactivation,\n    returnFocus: returnFocus,\n    focusOptions: focusOptions\n  }), /*#__PURE__*/React.createElement(Container, _extends({\n    ref: mergedRef\n  }, lockProps, {\n    className: className,\n    onBlur: onBlur,\n    onFocus: onFocus\n  }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n    \"data-focus-guard\": true,\n    tabIndex: disabled ? -1 : 0,\n    style: hiddenGuard\n  }));\n});\nFocusLock.defaultProps = {\n  children: undefined,\n  disabled: false,\n  returnFocus: false,\n  focusOptions: undefined,\n  noFocusGuards: false,\n  autoFocus: true,\n  persistentFocus: false,\n  crossFrame: true,\n  hasPositiveIndices: undefined,\n  allowTextSelection: undefined,\n  group: undefined,\n  className: undefined,\n  whiteList: undefined,\n  shards: undefined,\n  as: 'div',\n  lockProps: {},\n  onActivation: undefined,\n  onDeactivation: undefined\n};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n  if (process.env.NODE_ENV !== \"production\") {\n    if (typeof reducePropsToState !== 'function') {\n      throw new Error('Expected reducePropsToState to be a function.');\n    }\n\n    if (typeof handleStateChangeOnClient !== 'function') {\n      throw new Error('Expected handleStateChangeOnClient to be a function.');\n    }\n  }\n\n  function getDisplayName(WrappedComponent) {\n    return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n  }\n\n  return function wrap(WrappedComponent) {\n    if (process.env.NODE_ENV !== \"production\") {\n      if (typeof WrappedComponent !== 'function') {\n        throw new Error('Expected WrappedComponent to be a React component.');\n      }\n    }\n\n    var mountedInstances = [];\n    var state;\n\n    function emitChange() {\n      state = reducePropsToState(mountedInstances.map(function (instance) {\n        return instance.props;\n      }));\n      handleStateChangeOnClient(state);\n    }\n\n    var SideEffect = /*#__PURE__*/function (_PureComponent) {\n      _inheritsLoose(SideEffect, _PureComponent);\n\n      function SideEffect() {\n        return _PureComponent.apply(this, arguments) || this;\n      } // Try to use displayName of wrapped component\n\n\n      SideEffect.peek = function peek() {\n        return state;\n      };\n\n      var _proto = SideEffect.prototype;\n\n      _proto.componentDidMount = function componentDidMount() {\n        mountedInstances.push(this);\n        emitChange();\n      };\n\n      _proto.componentDidUpdate = function componentDidUpdate() {\n        emitChange();\n      };\n\n      _proto.componentWillUnmount = function componentWillUnmount() {\n        var index = mountedInstances.indexOf(this);\n        mountedInstances.splice(index, 1);\n        emitChange();\n      };\n\n      _proto.render = function render() {\n        return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n      };\n\n      return SideEffect;\n    }(PureComponent);\n\n    _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n    return SideEffect;\n  };\n}\n\nexport default withSideEffect;","import { FOCUS_NO_AUTOFOCUS } from '../constants';\n\nvar isElementHidden = function (node) {\n  // we can measure only \"elements\"\n  // consider others as \"visible\"\n  if (node.nodeType !== Node.ELEMENT_NODE) {\n    return false;\n  }\n\n  var computedStyle = window.getComputedStyle(node, null);\n\n  if (!computedStyle || !computedStyle.getPropertyValue) {\n    return false;\n  }\n\n  return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nvar getParentNode = function (node) {\n  // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n  return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  node.parentNode.host : node.parentNode;\n};\n\nvar isTopNode = function (node) {\n  // @ts-ignore\n  return node === document || node && node.nodeType === Node.DOCUMENT_NODE;\n};\n\nvar isVisibleUncached = function (node, checkParent) {\n  return !node || isTopNode(node) || !isElementHidden(node) && checkParent(getParentNode(node));\n};\n\nexport var isVisibleCached = function (visibilityCache, node) {\n  var cached = visibilityCache.get(node);\n\n  if (cached !== undefined) {\n    return cached;\n  }\n\n  var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n  visibilityCache.set(node, result);\n  return result;\n};\n\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n  return node && !isTopNode(node) ? isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false : true;\n};\n\nexport var isAutoFocusAllowedCached = function (cache, node) {\n  var cached = cache.get(node);\n\n  if (cached !== undefined) {\n    return cached;\n  }\n\n  var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n  cache.set(node, result);\n  return result;\n};\nexport var getDataset = function (node) {\n  // @ts-ignore\n  return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) {\n  return node.tagName === 'BUTTON';\n};\nexport var isHTMLInputElement = function (node) {\n  return node.tagName === 'INPUT';\n};\nexport var isRadioElement = function (node) {\n  return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n  return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n  var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n  return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) {\n  var _a;\n\n  return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard));\n};\nexport var isNotAGuard = function (node) {\n  return !isGuard(node);\n};\nexport var isDefined = function (x) {\n  return Boolean(x);\n};","import { isRadioElement } from './is';\n\nvar findSelectedRadio = function (node, nodes) {\n  return nodes.filter(isRadioElement).filter(function (el) {\n    return el.name === node.name;\n  }).filter(function (el) {\n    return el.checked;\n  })[0] || node;\n};\n\nexport var correctNode = function (node, nodes) {\n  if (isRadioElement(node) && node.name) {\n    return findSelectedRadio(node, nodes);\n  }\n\n  return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\n\nexport var correctNodes = function (nodes) {\n  // IE11 has no Set(array) constructor\n  var resultSet = new Set();\n  nodes.forEach(function (node) {\n    return resultSet.add(correctNode(node, nodes));\n  }); // using filter to support IE11\n\n  return nodes.filter(function (node) {\n    return resultSet.has(node);\n  });\n};","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n  if (nodes[0] && nodes.length > 1) {\n    return correctNode(nodes[0], nodes);\n  }\n\n  return nodes[0];\n};\nexport var pickFocusable = function (nodes, index) {\n  if (nodes.length > 1) {\n    return nodes.indexOf(correctNode(nodes[index], nodes));\n  }\n\n  return index;\n};","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\n\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n  var cnt = innerNodes.length;\n  var firstFocus = innerNodes[0];\n  var lastFocus = innerNodes[cnt - 1];\n  var isOnGuard = isGuard(activeElement); // focus is inside\n\n  if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n    return undefined;\n  }\n\n  var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n  var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n  var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n  var indexDiff = activeIndex - lastIndex;\n  var firstNodeIndex = outerNodes.indexOf(firstFocus);\n  var lastNodeIndex = outerNodes.indexOf(lastFocus);\n  var correctedNodes = correctNodes(outerNodes);\n  var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n  var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n  var returnFirstNode = pickFocusable(innerNodes, 0);\n  var returnLastNode = pickFocusable(innerNodes, cnt - 1); // new focus\n\n  if (activeIndex === -1 || lastNodeInside === -1) {\n    return NEW_FOCUS;\n  } // old focus\n\n\n  if (!indexDiff && lastNodeInside >= 0) {\n    return lastNodeInside;\n  } // first element\n\n\n  if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n    return returnLastNode;\n  } // last element\n\n\n  if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n    return returnFirstNode;\n  } // jump out, but not on the guard\n\n\n  if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n    return lastNodeInside;\n  } // focus above lock\n\n\n  if (activeIndex <= firstNodeIndex) {\n    return returnLastNode;\n  } // focus below lock\n\n\n  if (activeIndex > lastNodeIndex) {\n    return returnFirstNode;\n  } // index is inside tab order, but outside Lock\n\n\n  if (indexDiff) {\n    if (Math.abs(indexDiff) > 1) {\n      return lastNodeInside;\n    }\n\n    return (cnt + lastNodeInside + indexDiff) % cnt;\n  } // do nothing\n\n\n  return undefined;\n};","/*\nIE11 support\n */\nexport var toArray = function (a) {\n  var ret = Array(a.length);\n\n  for (var i = 0; i < a.length; ++i) {\n    ret[i] = a[i];\n  }\n\n  return ret;\n};\nexport var asArray = function (a) {\n  return Array.isArray(a) ? a : [a];\n};","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n  var tabDiff = a.tabIndex - b.tabIndex;\n  var indexDiff = a.index - b.index;\n\n  if (tabDiff) {\n    if (!a.tabIndex) {\n      return 1;\n    }\n\n    if (!b.tabIndex) {\n      return -1;\n    }\n  }\n\n  return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n  return toArray(nodes).map(function (node, index) {\n    return {\n      node: node,\n      index: index,\n      tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n    };\n  }).filter(function (data) {\n    return !filterNegative || data.tabIndex >= 0;\n  }).sort(tabSort);\n};","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\n\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n  var _a;\n\n  return toArray(((_a = parent.shadowRoot) === null || _a === void 0 ? void 0 : _a.children) || parent.children).reduce(function (acc, child) {\n    return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n  }, []);\n};\n\nexport var getFocusables = function (parents, withGuards) {\n  return parents.reduce(function (acc, parent) {\n    return acc.concat( // add all tabbables inside and within shadow DOMs in DOM order\n    getFocusablesWithShadowDom(parent, withGuards), // add if node is tabbable itself\n    parent.parentNode ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) {\n      return node === parent;\n    }) : []);\n  }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\n\nexport var getParentAutofocusables = function (parent) {\n  var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n  return toArray(parentFocus).map(function (node) {\n    return getFocusables([node]);\n  }).reduce(function (acc, nodes) {\n    return acc.concat(nodes);\n  }, []);\n};","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = ['button:enabled', 'select:enabled', 'textarea:enabled', 'input:enabled', // elements with explicit roles will also use explicit tabindex\n// '[role=\"button\"]',\n'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[tabindex]', '[contenteditable]', '[autofocus]'];","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\n\nexport var filterFocusable = function (nodes, visibilityCache) {\n  return toArray(nodes).filter(function (node) {\n    return isVisibleCached(visibilityCache, node);\n  }).filter(function (node) {\n    return notHiddenInput(node);\n  });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n  if (cache === void 0) {\n    cache = new Map();\n  }\n\n  return toArray(nodes).filter(function (node) {\n    return isAutoFocusAllowedCached(cache, node);\n  });\n};\n/**\n * only tabbable ones\n * (but with guards which would be ignored)\n */\n\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n  return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * actually anything \"focusable\", not only tabbable\n * (without guards, as long as they are not expected to be focused)\n */\n\nexport var getAllTabbableNodes = function (topNodes, visibilityCache) {\n  return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\n\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n  return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\n\nexport var contains = function (scope, element) {\n  return (scope.shadowRoot ? contains(scope.shadowRoot, element) : Object.getPrototypeOf(scope).contains.call(scope, element)) || toArray(scope.children).some(function (child) {\n    return contains(child, element);\n  });\n};","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\n\nvar filterNested = function (nodes) {\n  var contained = new Set();\n  var l = nodes.length;\n\n  for (var i = 0; i < l; i += 1) {\n    for (var j = i + 1; j < l; j += 1) {\n      var position = nodes[i].compareDocumentPosition(nodes[j]);\n      /* eslint-disable no-bitwise */\n\n      if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n        contained.add(j);\n      }\n\n      if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n        contained.add(i);\n      }\n      /* eslint-enable */\n\n    }\n  }\n\n  return nodes.filter(function (_, index) {\n    return !contained.has(index);\n  });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\n\n\nvar getTopParent = function (node) {\n  return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node\n * @returns {T}\n */\n\n\nexport var getAllAffectedNodes = function (node) {\n  var nodes = asArray(node);\n  return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n    var group = currentNode.getAttribute(FOCUS_GROUP);\n    acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\")))) : [currentNode]);\n    return acc;\n  }, []);\n};","var getNestedShadowActiveElement = function (shadowRoot) {\n  return shadowRoot.activeElement ? shadowRoot.activeElement.shadowRoot ? getNestedShadowActiveElement(shadowRoot.activeElement.shadowRoot) : shadowRoot.activeElement : undefined;\n};\n/**\n * returns active element from document or from nested shadowdoms\n */\n\n\nexport var getActiveElement = function () {\n  return document.activeElement ? document.activeElement.shadowRoot ? getNestedShadowActiveElement(document.activeElement.shadowRoot) : document.activeElement : undefined; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n};","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\n\nvar getParents = function (node, parents) {\n  if (parents === void 0) {\n    parents = [];\n  }\n\n  parents.push(node);\n\n  if (node.parentNode) {\n    getParents(node.parentNode.host || node.parentNode, parents);\n  }\n\n  return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\n\n\nexport var getCommonParent = function (nodeA, nodeB) {\n  var parentsA = getParents(nodeA);\n  var parentsB = getParents(nodeB); // tslint:disable-next-line:prefer-for-of\n\n  for (var i = 0; i < parentsA.length; i += 1) {\n    var currentParent = parentsA[i];\n\n    if (parentsB.indexOf(currentParent) >= 0) {\n      return currentParent;\n    }\n  }\n\n  return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n  var activeElements = asArray(baseActiveElement);\n  var leftEntries = asArray(leftEntry);\n  var activeElement = activeElements[0];\n  var topCommon = false;\n  leftEntries.filter(Boolean).forEach(function (entry) {\n    topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n    rightEntries.filter(Boolean).forEach(function (subEntry) {\n      var common = getCommonParent(activeElement, subEntry);\n\n      if (common) {\n        if (!topCommon || contains(common, topCommon)) {\n          topCommon = common;\n        } else {\n          topCommon = getCommonParent(common, topCommon);\n        }\n      }\n    });\n  }); // TODO: add assert here?\n\n  return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\n\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n  return entries.reduce(function (acc, node) {\n    return acc.concat(parentAutofocusables(node, visibilityCache));\n  }, []);\n};","import { NEW_FOCUS, newFocus } from './solver';\nimport { filterAutoFocusable, getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { getDataset, isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\n\nvar findAutoFocused = function (autoFocusables) {\n  return function (node) {\n    var _a; // @ts-expect-error\n\n\n    return node.autofocus || !!((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus) || autoFocusables.indexOf(node) >= 0;\n  };\n};\n\nvar reorderNodes = function (srcNodes, dstNodes) {\n  var remap = new Map(); // no Set(dstNodes) for IE11 :(\n\n  dstNodes.forEach(function (entity) {\n    return remap.set(entity.node, entity);\n  }); // remap to dstNodes\n\n  return srcNodes.map(function (node) {\n    return remap.get(node);\n  }).filter(isDefined);\n};\n/**\n * given top node(s) and the last active element return the element to be focused next\n * @param topNode\n * @param lastNode\n */\n\n\nexport var getFocusMerge = function (topNode, lastNode) {\n  var activeElement = document && getActiveElement();\n  var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n  var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n  var visibilityCache = new Map();\n  var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n  var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n    var node = _a.node;\n    return isNotAGuard(node);\n  });\n\n  if (!innerElements[0]) {\n    innerElements = anyFocusable;\n\n    if (!innerElements[0]) {\n      return undefined;\n    }\n  }\n\n  var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n    var node = _a.node;\n    return node;\n  });\n  var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n  var innerNodes = orderedInnerElements.map(function (_a) {\n    var node = _a.node;\n    return node;\n  });\n  var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n\n  if (newId === NEW_FOCUS) {\n    var autoFocusable = filterAutoFocusable(anyFocusable.map(function (_a) {\n      var node = _a.node;\n      return node;\n    })).filter(findAutoFocused(allParentAutofocusables(entries, visibilityCache)));\n    return {\n      node: autoFocusable && autoFocusable.length ? pickFirstFocus(autoFocusable) : pickFirstFocus(filterAutoFocusable(innerNodes))\n    };\n  }\n\n  if (newId === undefined) {\n    return newId;\n  }\n\n  return orderedInnerElements[newId];\n};","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function (target, focusOptions) {\n  if ('focus' in target) {\n    target.focus(focusOptions);\n  }\n\n  if ('contentWindow' in target && target.contentWindow) {\n    target.contentWindow.focus();\n  }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * Sets focus at a given node. The last focused element will help to determine which element(first or last) should be focused.\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @param topNode\n * @param lastNode\n * @param options\n */\n\nexport var setFocus = function (topNode, lastNode, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var focusable = getFocusMerge(topNode, lastNode);\n\n  if (lockDisabled) {\n    return;\n  }\n\n  if (focusable) {\n    if (guardCount > 2) {\n      // tslint:disable-next-line:no-console\n      console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n      lockDisabled = true;\n      setTimeout(function () {\n        lockDisabled = false;\n      }, 1);\n      return;\n    }\n\n    guardCount++;\n    focusOn(focusable.node, options.focusOptions);\n    guardCount--;\n  }\n};","import * as constants from './constants';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { getFocusabledIn, getFocusableIn } from './focusables';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getActiveElement } from './utils/getActiveElement';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusableIn, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement, getActiveElement };\nexport default setFocus; //","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n\nvar focusInFrame = function (frame) {\n  return frame === document.activeElement;\n};\n\nvar focusInsideIframe = function (topNode) {\n  return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) {\n    return focusInFrame(node);\n  }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes\n */\n\n\nexport var focusInside = function (topNode) {\n  var activeElement = document && getActiveElement();\n\n  if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n    return false;\n  }\n\n  return getAllAffectedNodes(topNode).some(function (node) {\n    return contains(node, activeElement) || focusInsideIframe(node);\n  });\n};","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\n/**\n * return list of focusable elements inside a given top node\n * @deprecated use {@link getFocusableIn}. Yep, there is typo in the function name\n */\n\nexport var getFocusabledIn = function (topNode) {\n  var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n  var commonParent = getTopCommonParent(topNode, topNode, entries);\n  var visibilityCache = new Map();\n  var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n  var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n    var node = _a.node;\n    return isNotAGuard(node);\n  }).map(function (_a) {\n    var node = _a.node;\n    return node;\n  });\n  return outerNodes.map(function (_a) {\n    var node = _a.node,\n        index = _a.index;\n    return {\n      node: node,\n      index: index,\n      lockItem: innerElements.indexOf(node) >= 0,\n      guard: isGuard(node)\n    };\n  });\n};\n/**\n * return list of focusable elements inside a given top node\n */\n\nexport var getFocusableIn = getFocusabledIn;","export function deferAction(action) {\n  // Hidding setImmediate from Webpack to avoid inserting polyfill\n  var _window = window,\n      setImmediate = _window.setImmediate;\n\n  if (typeof setImmediate !== 'undefined') {\n    setImmediate(action);\n  } else {\n    setTimeout(action, 1);\n  }\n}\nexport var inlineProp = function inlineProp(name, value) {\n  var obj = {};\n  obj[name] = value;\n  return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n  return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n  return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n  return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n  return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n  lastPortaledElement = {\n    observerNode: observerNode,\n    portaledElement: portaledElement\n  };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n  return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n  var lastGuard = null;\n  var i = startIndex;\n\n  do {\n    var item = allNodes[i];\n\n    if (item.guard) {\n      if (item.node.dataset.focusAutoGuard) {\n        lastGuard = item;\n      }\n    } else if (item.lockItem) {\n      if (i !== startIndex) {\n        // we will tab to the next element\n        return;\n      }\n\n      lastGuard = null;\n    } else {\n      break;\n    }\n  } while ((i += step) !== end);\n\n  if (lastGuard) {\n    lastGuard.node.tabIndex = 0;\n  }\n}\n\nvar extractRef = function extractRef(ref) {\n  return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n  if (crossFrameOption) {\n    // with cross frame return true for any value\n    return Boolean(focusWasOutsideWindow);\n  } // in other case return only of focus went a while aho\n\n\n  return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n  return el && ( // find host equal to active element and check nested active element\n  el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n  || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n  return workingArea.some(function (area) {\n    return checkInHost(activeElement, area, area);\n  });\n};\n\nvar activateTrap = function activateTrap() {\n  var result = false;\n\n  if (lastActiveTrap) {\n    var _lastActiveTrap = lastActiveTrap,\n        observed = _lastActiveTrap.observed,\n        persistentFocus = _lastActiveTrap.persistentFocus,\n        autoFocus = _lastActiveTrap.autoFocus,\n        shards = _lastActiveTrap.shards,\n        crossFrame = _lastActiveTrap.crossFrame,\n        focusOptions = _lastActiveTrap.focusOptions;\n    var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n    var activeElement = document && document.activeElement;\n\n    if (workingNode) {\n      var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n      if (!activeElement || focusWhitelisted(activeElement)) {\n        if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n          if (workingNode && !( // active element is \"inside\" working area\n          focusInside(workingArea) || // check for shadow-dom contained elements\n          activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n            if (document && !lastActiveFocus && activeElement && !autoFocus) {\n              // Check if blur() exists, which is missing on certain elements on IE\n              if (activeElement.blur) {\n                activeElement.blur();\n              }\n\n              document.body.focus();\n            } else {\n              result = moveFocusInside(workingArea, lastActiveFocus, {\n                focusOptions: focusOptions\n              });\n              lastPortaledElement = {};\n            }\n          }\n\n          focusWasOutsideWindow = false;\n          lastActiveFocus = document && document.activeElement;\n        }\n      }\n\n      if (document) {\n        var newActiveElement = document && document.activeElement;\n        var allNodes = getFocusabledIn(workingArea);\n        var focusedIndex = allNodes.map(function (_ref) {\n          var node = _ref.node;\n          return node;\n        }).indexOf(newActiveElement);\n\n        if (focusedIndex > -1) {\n          // remove old focus\n          allNodes.filter(function (_ref2) {\n            var guard = _ref2.guard,\n                node = _ref2.node;\n            return guard && node.dataset.focusAutoGuard;\n          }).forEach(function (_ref3) {\n            var node = _ref3.node;\n            return node.removeAttribute('tabIndex');\n          });\n          autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n          autoGuard(focusedIndex, -1, -1, allNodes);\n        }\n      }\n    }\n  }\n\n  return result;\n};\n\nvar onTrap = function onTrap(event) {\n  if (activateTrap() && event) {\n    // prevent scroll jump\n    event.stopPropagation();\n    event.preventDefault();\n  }\n};\n\nvar onBlur = function onBlur() {\n  return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n  // detect portal\n  var source = event.target;\n  var currentNode = event.currentTarget;\n\n  if (!currentNode.contains(source)) {\n    recordPortal(currentNode, source);\n  }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n  return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n  var children = _ref4.children;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    onBlur: onBlur,\n    onFocus: onFocus\n  }, children);\n};\n\nvar onWindowBlur = function onWindowBlur() {\n  focusWasOutsideWindow = 'just'; // using setTimeout to set  this variable after React/sidecar reaction\n\n  setTimeout(function () {\n    focusWasOutsideWindow = 'meanwhile';\n  }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n  document.addEventListener('focusin', onTrap);\n  document.addEventListener('focusout', onBlur);\n  window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n  document.removeEventListener('focusin', onTrap);\n  document.removeEventListener('focusout', onBlur);\n  window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n  return propsList.filter(function (_ref5) {\n    var disabled = _ref5.disabled;\n    return !disabled;\n  });\n}\n\nfunction handleStateChangeOnClient(traps) {\n  var trap = traps.slice(-1)[0];\n\n  if (trap && !lastActiveTrap) {\n    attachHandler();\n  }\n\n  var lastTrap = lastActiveTrap;\n  var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n  lastActiveTrap = trap;\n\n  if (lastTrap && !sameTrap) {\n    lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n    if (!traps.filter(function (_ref6) {\n      var id = _ref6.id;\n      return id === lastTrap.id;\n    }).length) {\n      // allow defer is no other trap is awaiting restore\n      lastTrap.returnFocus(!trap);\n    }\n  }\n\n  if (trap) {\n    lastActiveFocus = null;\n\n    if (!sameTrap || lastTrap.observed !== trap.observed) {\n      trap.onActivation();\n    }\n\n    activateTrap(true);\n    deferAction(activateTrap);\n  } else {\n    detachHandler();\n    lastActiveFocus = null;\n  }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n  return cb({\n    moveFocusInside: moveFocusInside,\n    focusInside: focusInside\n  });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n * @returns {boolean} focus is currently is in \"allow\" area\n */\n\nexport var focusIsHidden = function () {\n  var activeElement = document && getActiveElement();\n\n  if (!activeElement) {\n    return false;\n  } // this does not support setting FOCUS_ALLOW within shadow dom\n\n\n  return toArray(document.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) {\n    return contains(node, activeElement);\n  });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n  // eslint-disable-next-line global-require\n  const SideCar = require('./Trap').default;\n  return <SideCar {...props} />;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n  return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n    sideCar: FocusTrap,\n    ref: ref\n  }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n    sideCar = _ref.sideCar;\n\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","import React, { useEffect, useRef } from \"react\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\n\nexport default function SubNavigation({ current, id }) {\n  const activeItem = useRef()\n\n  const handleScroll = () => {\n    var height = document.documentElement.scrollHeight - window.innerHeight\n    var scrollY = window.pageYOffset\n    var progress = Math.round((scrollY / height) * 100)\n    if (activeItem.current) {\n      activeItem.current.style.width = progress + \"%\"\n    }\n  }\n\n  const setActive = name => {\n    if (current === name) {\n      return \"sub-navigation--active\"\n    } else if (!current) {\n      return \"sub-navigation--active\"\n    } else {\n      return null\n    }\n  }\n\n  useEffect(() => {\n    window.addEventListener(\"scroll\", handleScroll)\n  })\n\n  const renderChildren = () => {\n    const parentMenu = findObject(menuData, \"id\", id)\n    if (parentMenu === undefined) {\n      return null\n    }\n    const menu = parentMenu.children\n    const location = menu.findIndex(item => item.id.includes(current))\n\n    let children = menu.map((item, index) => {\n      return (\n        <li\n          key={index}\n          className={setActive(item.id, index)}\n          style={{ flex: 100 / menu.length }}\n        >\n          <div className=\"sub-navigation__progress\">\n            <div\n              className={\n                index < location\n                  ? \"sub-navigation__progress__bar sub-navigation__progress__bar--full\"\n                  : \"sub-navigation__progress__bar\"\n              }\n              ref={item.id === current ? activeItem : null}\n            />\n          </div>\n\n          <Link className=\"sub-navigation__item\" to={item.href}>\n            <div className=\"sub-navigation__item__text\">\n              <div className=\"sub-navigation__item__text__title\">\n                {item.name}\n              </div>\n            </div>\n          </Link>\n        </li>\n      )\n    })\n\n    return children\n  }\n\n  const menuLength = () => {\n    const parentMenu = findObject(menuData, \"id\", id)\n    if (parentMenu === undefined) {\n      return null\n    }\n    const menu = parentMenu.children\n    return menu.length\n  }\n\n  return (\n    <nav\n      className={`sub-navigation sub-navigation--desktop sub-navigation--${menuLength()}`}\n    >\n      <ul className=\"container\">{renderChildren()}</ul>\n    </nav>\n  )\n}\n","import React, { useEffect, useRef, useState } from \"react\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\n\nexport default function MobileSubNavigation({ current, id }) {\n  const activeItem = useRef()\n  const [expanded, setExpanded] = useState(false)\n\n  const handleScroll = () => {\n    var height = document.documentElement.scrollHeight - window.innerHeight\n    var scrollY = window.pageYOffset\n    var progress = Math.round((scrollY / height) * 100)\n    if (activeItem.current) {\n      activeItem.current.style.width = progress + \"%\"\n    }\n  }\n\n  const setActive = name => {\n    if (current === name) {\n      return \"sub-navigation--active\"\n    } else if (!current) {\n      return \"sub-navigation--active\"\n    } else {\n      return null\n    }\n  }\n\n  useEffect(() => {\n    window.addEventListener(\"scroll\", handleScroll)\n  })\n\n  const renderChildren = () => {\n    const parentMenu = findObject(menuData, \"id\", id)\n    if (parentMenu === undefined) {\n      return null\n    }\n    const menu = parentMenu.children\n    const location = menu.findIndex(item => item.id.includes(current))\n    const currentItem = location !== -1 ? menu[location] : parentMenu\n\n    const items = menu.map((item, index) => {\n      return item.id !== current ? (\n        <li\n          key={index}\n          className={setActive(item.id, index)}\n          aria-hidden={expanded ? \"false\" : \"true\"}\n        >\n          <Link className=\"sub-navigation__item\" to={item.href}>\n            <div className=\"sub-navigation__item__text\">\n              <div className=\"sub-navigation__item__text__title\">\n                {item.name}\n              </div>\n            </div>\n          </Link>\n        </li>\n      ) : null\n    })\n\n    return (\n      <>\n        <li className=\"sub-navigation--active\">\n          <button\n            onClick={() => setExpanded(!expanded)}\n            className=\"icon--chevron\"\n            aria-controls=\"sub-navigation__menu\"\n          >\n            <div className=\"sub-navigation__progress\">\n              <div className=\"sub-navigation__progress__bar\" ref={activeItem} />\n            </div>\n\n            <div className=\"sub-navigation__item\">\n              <div className=\"sub-navigation__item__text\">\n                <div className=\"sub-navigation__item__text__title\">\n                  {currentItem.name}\n                </div>\n              </div>\n            </div>\n          </button>\n        </li>\n        {items}\n      </>\n    )\n  }\n\n  return (\n    <nav className=\"sub-navigation sub-navigation--mobile\">\n      <ul\n        id=\"sub-navigation__menu\"\n        className={\n          expanded\n            ? `sub-navigation__menu sub-navigation__menu--expanded`\n            : `sub-navigation__menu`\n        }\n      >\n        {renderChildren()}\n      </ul>\n    </nav>\n  )\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport { Link, withPrefix } from \"gatsby\"\nimport { slugify } from \"../helpers/strings\"\nimport menu from \"../data/menu.json\"\nimport FocusLock from \"react-focus-lock\"\nimport SubNavigation from \"../components/sub-navigation\"\nimport MobileSubNavigation from \"../components/mobile-sub-navigation\"\nimport { useHoverIntent } from \"react-use-hoverintent\"\n\nexport default function SiteHeader({ path, hash }) {\n  const homepageLogoLink = useRef()\n  const mobileNavButton = useRef()\n  const [mobileNavIsActive, setMobileNavIsActive] = useState(false)\n\n  // Subcomponent to handle Nav Main Item hover intent\n  const NavMainItem = ({ item, itemSlug, children }) => {\n    const [isHovering, ref] = useHoverIntent({\n      timeout: 200,\n      sensitivity: 10,\n      interval: 100,\n    })\n\n    return (\n      <li\n        ref={ref}\n        id={\"nav-item-\" + itemSlug}\n        className={\n          \"site-header__nav__main__item\" +\n          (isNavItemActive(item)\n            ? \" site-header__nav__main__item--active\"\n            : \"\") +\n          (isHovering ? \" site-header__nav__main__item--focus\" : \"\")\n        }\n        aria-controls={item.children ? \"child-item-\" + itemSlug : null}\n      >\n        {children}\n      </li>\n    )\n  }\n\n  const paths = path\n    .split(\"/\")\n    .filter(function (el) {\n      return el !== \"\"\n    })\n    .slice(0)\n    .slice(-2)\n\n  const getPageParent = () => {\n    let parent\n    if (\n      paths[0] === \"2022\" ||\n      !paths.length ||\n      paths[1] === \"message-from-the-md\"\n    ) {\n      parent = \"intro\"\n    } else {\n      parent = paths[0]\n    }\n    return parent\n  }\n\n  const getPageSlug = () => {\n    let slug\n    if (paths[0] === \"2022\") {\n      slug = \"opening-statement\"\n    } else {\n      slug = paths[1]\n    }\n\n    return slug\n  }\n\n  // Helper for normalizing paths for correct mobile nav active page underlining, regardless of env\n  function normalizePath(path) {\n    return path.replace(\"/external/pubs/ft/ar/2022/\", \"/\")\n  }\n\n  function toggleMobileNav() {\n    const BODY_LOCK = \"util__body-lock\"\n\n    if (mobileNavIsActive) {\n      setMobileNavIsActive(false)\n      document.body.classList.remove(BODY_LOCK)\n    } else {\n      setMobileNavIsActive(true)\n      document.body.classList.add(BODY_LOCK)\n    }\n  }\n\n  function isNavItemActive(item) {\n    if (path.includes(\"in-focus\") && item.name === \"In Focus\") {\n      return true\n    } else if (path.includes(\"what-we-do\") && item.name === \"What We Do\") {\n      return true\n    } else if (path.includes(\"who-we-are\") && item.name === \"Who We Are\") {\n      return true\n    } else if (path.includes(\"downloads\") && item.name === \"Downloads\") {\n      return true\n    } else if (\n      path.includes(\"message-from-the-md\") &&\n      item === \"Message from the MD\"\n    ) {\n      return true\n    } else {\n      return false\n    }\n  }\n\n  function toggleNavItemOnFocus(e) {\n    // If the user is clicking, ignore this focus/blur toggle behavior and allow hover behavior to persist\n    if (!document.body.classList.contains(\"user-is-tabbing\")) {\n      return\n    }\n\n    const focusClass = \"site-header__nav__main__item--focus\"\n\n    let focusedItemParent = e.target.closest(\"li.site-header__nav__main__item\")\n\n    focusedItemParent.classList.contains(focusClass)\n      ? focusedItemParent.classList.remove(focusClass)\n      : focusedItemParent.classList.add(focusClass)\n  }\n\n  // Simple listener to close overlay on escape key hit\n  function handleKeydown(e) {\n    if (mobileNavIsActive && e.keyCode === 27) {\n      toggleMobileNav()\n    }\n  }\n\n  useEffect(() => {\n    document.addEventListener(\"keydown\", handleKeydown)\n    return () => {\n      document.removeEventListener(\"keydown\", handleKeydown)\n    }\n  })\n\n  function getThemeColor(href) {\n    if (href.includes(\"in-focus\")) {\n      return \"theme-color-in-focus\"\n    } else if (href.includes(\"what-we-do\")) {\n      return \"theme-color-what-we-do\"\n    } else if (href.includes(\"who-we-are\")) {\n      return \"theme-color-who-we-are\"\n    } else if (\n      href.includes(\"downloads\") ||\n      href.includes(\"english\") ||\n      href.includes(\"arabic\") ||\n      href.includes(\"chinese\") ||\n      href.includes(\"french\") ||\n      href.includes(\"german\") ||\n      href.includes(\"japanese\") ||\n      href.includes(\"portuguese\") ||\n      href.includes(\"russian\") ||\n      href.includes(\"spanish\")\n    ) {\n      return \"theme-color-downloads\"\n    } else if (href.includes(\"message-from-the-md\")) {\n      return \"theme-color-message-from-the-md\"\n    } else {\n      return null\n    }\n  }\n\n  return (\n    <header className=\"site-header\" id=\"site-header\">\n      <div className=\"site-header__inner\">\n        <HomepageLogoLink\n          passedRef={homepageLogoLink}\n          classes=\"site-header__logo\"\n          path={path}\n        />\n        <nav className=\"site-header__nav\">\n          <ul className=\"site-header__nav__main\">\n            {/* Output letter from MD */}\n            <NavMainItem\n              item={\"Message from the MD\"}\n              itemSlug={\"message-from-the-md\"}\n            >\n              <Link\n                to=\"/message-from-the-md\"\n                className={getThemeColor(\"/message-from-the-md\")}\n                aria-current={\n                  path.includes(\"message-from-the-md\") ? \"page\" : null\n                }\n              >\n                Message from the MD\n              </Link>\n            </NavMainItem>\n\n            {/* Loop through menu.json and output items */}\n            {menu.map((item, index) => {\n              let itemSlug = slugify(item.name)\n\n              return item.hideDesktop ? null : (\n                <NavMainItem\n                  item={item}\n                  itemSlug={itemSlug}\n                  key={\"nav-item-desktop-\" + itemSlug}\n                >\n                  {item.href ? (\n                    <Link\n                      to={item.href}\n                      aria-current={path.includes(item.href) ? \"page\" : null}\n                      className={getThemeColor(item.href)}\n                      onFocus={toggleNavItemOnFocus}\n                      onBlur={toggleNavItemOnFocus}\n                    >\n                      {item.name}\n                    </Link>\n                  ) : (\n                    <button\n                      type=\"button\"\n                      onFocus={toggleNavItemOnFocus}\n                      onBlur={toggleNavItemOnFocus}\n                    >\n                      {item.name}\n                    </button>\n                  )}\n                  <ul\n                    id={\"child-item-\" + itemSlug}\n                    className=\"site-header__nav__sub\"\n                  >\n                    {item.children.map((child, index) => (\n                      <li key={\"child-item-\" + child.name}>\n                        {child.href.includes(\".pdf\") ? (\n                          <a\n                            href={withPrefix(\"/\") + child.href}\n                            aria-current={\n                              path.includes(child.href) ? \"page\" : null\n                            }\n                            onFocus={toggleNavItemOnFocus}\n                            onBlur={toggleNavItemOnFocus}\n                          >\n                            {child.name}\n                          </a>\n                        ) : child.href ? (\n                          <Link\n                            to={child.href}\n                            aria-current={\n                              path.includes(child.href) ? \"page\" : null\n                            }\n                            onFocus={toggleNavItemOnFocus}\n                            onBlur={toggleNavItemOnFocus}\n                          >\n                            {child.name}\n                          </Link>\n                        ) : (\n                          <p>{child.name}</p>\n                        )}\n                        {child.children ? (\n                          <ul className=\"site-header__nav__super-sub\">\n                            {child.children.map((subchild, index) => (\n                              <li key={\"subchild-item-\" + subchild.name}>\n                                {subchild.href.includes(\".pdf\") ? (\n                                  <a\n                                    href={withPrefix(\"/\") + subchild.href}\n                                    aria-current={\n                                      path.includes(subchild.href)\n                                        ? \"page\"\n                                        : null\n                                    }\n                                    onFocus={toggleNavItemOnFocus}\n                                    onBlur={toggleNavItemOnFocus}\n                                  >\n                                    {subchild.name}\n                                  </a>\n                                ) : (\n                                  <Link\n                                    to={subchild.href}\n                                    aria-current={\n                                      path.includes(subchild.href)\n                                        ? \"page\"\n                                        : null\n                                    }\n                                    onFocus={toggleNavItemOnFocus}\n                                    onBlur={toggleNavItemOnFocus}\n                                  >\n                                    {subchild.name}\n                                  </Link>\n                                )}\n                              </li>\n                            ))}\n                          </ul>\n                        ) : null}\n                      </li>\n                    ))}\n                  </ul>\n                </NavMainItem>\n              )\n            })}\n          </ul>\n        </nav>\n\n        <FocusLock\n          disabled={mobileNavIsActive ? false : true}\n          shards={\n            mobileNavIsActive ? [homepageLogoLink, mobileNavButton] : null\n          }\n          returnFocus={true}\n          noFocusGuards={true}\n        >\n          <nav\n            id=\"site-mobile-nav\"\n            className=\"site-mobile-nav\"\n            aria-hidden={mobileNavIsActive ? \"false\" : \"true\"}\n            tabIndex=\"-1\"\n          >\n            <ul className=\"site-mobile-nav__main\">\n              {menu.map((item, index) => {\n                return (\n                  <li key={\"nav-item-\" + item.name}>\n                    {item.href ? (\n                      <Link\n                        className={\n                          normalizePath(path + hash) ===\n                            normalizePath(item.href) &&\n                          (path.includes(\"in-focus\") ||\n                            path.includes(\"who-we-are\") ||\n                            normalizePath(path + hash) === \"/\")\n                            ? \"no-color-change\"\n                            : null\n                        }\n                        to={item.href}\n                        aria-current={\n                          normalizePath(path + hash) ===\n                          normalizePath(item.href)\n                            ? \"page\"\n                            : null\n                        }\n                        onClick={toggleMobileNav}\n                      >\n                        {item.name}\n                      </Link>\n                    ) : (\n                      <div>{item.name}</div>\n                    )}\n                    <ul>\n                      {item.children.map((child, index) => (\n                        <li key={\"child-item-\" + child.name}>\n                          {child.href.includes(\".pdf\") ? (\n                            <a\n                              href={withPrefix(\"/\") + child.href}\n                              onClick={toggleMobileNav}\n                            >\n                              {child.name}\n                            </a>\n                          ) : (\n                              child.href ? (\n                                <Link\n                              to={child.href}\n                              aria-current={\n                                normalizePath(path + hash) ===\n                                normalizePath(child.href)\n                                  ? \"page\"\n                                  : null\n                              }\n                              onClick={toggleMobileNav}\n                            >\n                              {child.name}\n                            </Link>\n                              ) : ( \n                                  <p>{child.name}</p>\n                            )\n                          )}\n                          {child.children ? (\n                            <ul className=\"site-mobile-nav__main__super-sub\">\n                              {child.children.map((subchild, index) => (\n                                <li key={\"subchild-item-\" + subchild.name}>\n                                  {subchild.href.includes(\".pdf\") ? (\n                                    <a\n                                      href={withPrefix(\"/\") + subchild.href}\n                                      onClick={toggleMobileNav}\n                                    >\n                                      {subchild.name}\n                                    </a>\n                                  ) : (\n                                    <Link\n                                      to={subchild.href}\n                                      aria-current={\n                                        normalizePath(path + hash) ===\n                                        normalizePath(subchild.href)\n                                          ? \"page\"\n                                          : null\n                                      }\n                                      onClick={toggleMobileNav}\n                                    >\n                                      {subchild.name}\n                                    </Link>\n                                  )}\n                                </li>\n                              ))}\n                            </ul>\n                          ) : null}\n                        </li>\n                      ))}\n                    </ul>\n                  </li>\n                )\n              })}\n            </ul>\n          </nav>\n        </FocusLock>\n\n        <button\n          className=\"site-nav__menu-button\"\n          type=\"button\"\n          aria-label=\"Toggle mobile navigation\"\n          aria-owns=\"site-mobile-nav\"\n          onClick={toggleMobileNav}\n          ref={mobileNavButton}\n        >\n          <span\n            className={\n              \"site-nav__menu-button__icon\" +\n              (mobileNavIsActive ? \" site-nav__menu-button__icon--active\" : \"\")\n            }\n          ></span>\n        </button>\n      </div>\n\n      {getPageParent() !== \"intro\" &&\n      getPageParent() !== \"downloads\" &&\n      getPageParent() !== \"message-from-the-md\" &&\n      getPageParent() !== \"eng\" ? (\n        <>\n          <SubNavigation id={getPageParent()} current={getPageSlug()} />\n          <MobileSubNavigation id={getPageParent()} current={getPageSlug()} />\n        </>\n      ) : null}\n    </header>\n  )\n}\n","import React from \"react\"\nimport { Helmet } from \"react-helmet\"\nimport useSiteMetadata from \"../hooks/use-site-metadata\"\nimport menu from \"../data/menu.json\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\n/**\n * Component representing common metadata of a page.\n *\n * Different crawlers such as Twitter Cards and Facebook's Open Graph Protocol (OGP)\n * use different meta tags to annotate web pages for things like smart previews.\n * This component abstracts out the specific meta tags and attributes necessary and defines\n * valid properties that can be attached to metadata for Gatsby site pages.\n *\n * Props:\n *\n * @param title The title of the page used in the `<title>` tag.\n * @param description A longer description of the page, used in the \"description\" tag\n * as well as OGP.\n *\n * @param type The type of the page, used by OGP: https://ogp.me/#types\n *\n * @param image An image to be attached to the Facebook preview and Twitter Card. Consists of:\n *\n *  - `src` the source the image\n *  - `width` the width of the image\n *  - `height` the height of the image\n *\n * @param twitterCard The Twitter card type, which will be one of\n * “summary”, “summary_large_image”, “app”, or “player”.\n *\n * @param timeToRead The amount of time it takes to read the article, in minutes.\n * Used by Slack rich previews:\n * https://api.slack.com/legacy/message-link-unfurling#classic_unfurling\n *\n * @param children You can specify additional meta properties or override them by\n * adding children to this component. For example:\n *\n * ```\n * <PageMetadata>\n *   <meta name=\"author\" content={author.id} />\n * </PageMetadata>\n * ```\n *\n * Additional References:\n *\n *  - Open Graph Protocol: https://ogp.me/\n *  - Facebook Sharing Debugger: https://developers.facebook.com/tools/debug/\n *  - Twitter Card Docs: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup\n *  - Twitter Card validator: https://cards-dev.twitter.com/validator\n */\nexport default function PageMetadata({\n  template,\n  type,\n  twitterCard,\n  timeToRead,\n  children,\n}) {\n  const { siteUrl, title, description } = useSiteMetadata()\n  // <Helmet> doesn't support JSX fragments so we can't bundle the tags based on\n  // the property they match up with\n\n  // title is read-only, so instantiate a new var for the page title (and page featured image)\n  var pageTitle = \"\"\n  var pageFeaturedImagePath = \"\"\n\n  menu.forEach(item => {\n    if (template === item.id) {\n      pageTitle = item.name\n\n      pageFeaturedImagePath = item.featured_image && item.featured_image\n    } else if (item.children) {\n      item.children.forEach(child => {\n        if (template === child.id) {\n          pageTitle = `${item.id === \"in-focus\" ? \"\" : `${child.name} | `}${\n            item.name\n          }`\n          pageFeaturedImagePath = child.featured_image && child.featured_image\n        }\n      })\n    }\n  })\n\n  // Static image method modified from Image.js\n  const data = useStaticQuery(\n    graphql`\n      query {\n        images: allFile {\n          edges {\n            node {\n              relativePath\n              name\n              childImageSharp {\n                fluid(maxWidth: 3000, quality: 100) {\n                  ...GatsbyImageSharpFluid\n                  ...GatsbyImageSharpFluid_withWebp\n                }\n              }\n            }\n          }\n        }\n      }\n    `\n  )\n\n  const pageFeaturedImage =\n    pageFeaturedImagePath &&\n    data.images.edges.find(item =>\n      item.node.relativePath.includes(pageFeaturedImagePath)\n    )?.node.childImageSharp.fluid.src\n\n  return (\n    <Helmet>\n      <html lang=\"en\" />\n      <meta\n        name=\"viewport\"\n        content=\"width=device-width, initial-scale=1, maximum-scale=5, shrink-to-fit=no\"\n      />\n      {title && <title>{`${pageTitle && ` ${pageTitle} | ${title}`}`}</title>}\n      {title && (\n        <meta\n          property=\"og:title\"\n          content={`${pageTitle && ` ${pageTitle} | ${title}`}`}\n        />\n      )}\n      {description && <meta name=\"description\" content={description} />}\n      {description && <meta property=\"og:description\" content={description} />}\n      {type && <meta property=\"og:type\" content={type} />}\n      {twitterCard && <meta name=\"twitter:card\" content={twitterCard} />}\n      {timeToRead && <meta name=\"twitter:label1\" content=\"Reading time\" />}\n      {timeToRead && (\n        <meta name=\"twitter:data1\" content={`${timeToRead} min read`} />\n      )}\n      <meta\n        property=\"og:image\"\n        content={\n          siteUrl +\n          (pageFeaturedImage ? pageFeaturedImage : \"/images/og_image.png\")\n        }\n      />\n      {children}\n    </Helmet>\n  )\n}\n","import { graphql, useStaticQuery } from \"gatsby\"\n\nexport default function useSiteMetadata() {\n  const { site } = useStaticQuery(graphql`\n    query SiteMetadata {\n      site {\n        siteMetadata {\n          siteUrl\n          title\n          twitter\n          description\n        }\n      }\n    }\n  `)\n  return site.siteMetadata\n}\n","/* eslint-disable */\nimport React from \"react\"\n\nexport default function Cta({ href, text, type, targetBlank }) {\n  return (\n    <a\n      href={href}\n      className={`cta cta--${type}`}\n      target={targetBlank ? \"_blank\" : null}\n      rel={targetBlank ? \"noreferrer\" : null}\n    >\n      {text}\n      {type === \"secondary\" ? (\n        <svg\n          width=\"24\"\n          height=\"24\"\n          viewBox=\"0 0 24 24\"\n          fill=\"none\"\n          xmlns=\"https://www.w3.org/2000/svg\"\n        >\n          <path\n            d=\"M15.0378 6.34317L13.6269 7.76069L16.8972 11.0157L3.29211 11.0293L3.29413 13.0293L16.8619 13.0157L13.6467 16.2459L15.0643 17.6568L20.7079 11.9868L15.0378 6.34317Z\"\n            fill=\"currentColor\"\n          />\n        </svg>\n      ) : null}\n    </a>\n  )\n}\n","import React from \"react\"\nimport { withPrefix } from \"gatsby\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport Cta from \"../components/cta\"\nimport DownloadFullReport from \"../components/download-full-report\"\nimport Safe from \"react-safe\"\nimport socialLinks from \"../data/social-links.json\"\nimport Facebook from \"../images/footer/icon-facebook.inline.svg\"\nimport Twitter from \"../images/footer/icon-twitter.inline.svg\"\nimport Instagram from \"../images/footer/icon-instagram.inline.svg\"\nimport LinkedIn from \"../images/footer/icon-linkedin.inline.svg\"\nimport YouTube from \"../images/footer/icon-youtube.inline.svg\"\n\nexport default function SiteFooter({ path }) {\n  const description =\n    \"The International Monetary Fund (IMF) is a global organization of 190 member countries set up to promote the health of the world economy.\"\n\n  const socialLinksTypes = {\n    facebook: Facebook,\n    twitter: Twitter,\n    instagram: Instagram,\n    linkedin: LinkedIn,\n    youtube: YouTube,\n  }\n\n  return (\n    <footer className=\"site-footer\">\n      <section className=\"site-footer__main\">\n        <header>\n          <HomepageLogoLink classes=\"site-footer__about__logo\" path={path} />\n        </header>\n\n        <div className=\"site-footer__about\">\n          <h3 className=\"title title--r title--uppercase\">About the IMF</h3>\n          <p className=\"title--s\">{description}</p>\n          <Cta type=\"secondary\" href=\"https://www.imf.org/\" text=\"Learn More\" />\n        </div>\n\n        <DownloadFullReport />\n      </section>\n\n      <div className=\"site-footer__bottom\">\n        <div className=\"site-footer__bottom__inner\">\n          <div className=\"site-footer__bottom__social\">\n            <h4 className=\"title title--s title--uppercase\">Follow Us</h4>\n            <ul>\n              {socialLinks.map((item, index) => {\n                const SvgIcon = socialLinksTypes[item.id]\n\n                return (\n                  <li key={index}>\n                    <a href={item.href} aria-label={item.name}>\n                      <SvgIcon />\n                    </a>\n                  </li>\n                )\n              })}\n            </ul>\n          </div>\n\n          <p className=\"title--xs\">\n            Credits for images found in this website can be found{\" \"}\n            <u>\n              <a href={withPrefix(\"/\") + \"downloads/photo-credits.pdf\"}>here</a>\n            </u>\n            .\n          </p>\n        </div>\n      </div>\n\n      {typeof _satellite !== \"undefined\" ? (\n        <Safe.script type=\"text/javascript\">\n          _satellite.pageBottom();\n        </Safe.script>\n      ) : null}\n    </footer>\n  )\n}\n","import React, { useEffect } from \"react\"\nimport SiteHeader from \"../components/site-header\"\nimport PageMetadata from \"../components/page-metadata\"\nimport { Location } from \"@reach/router\"\nimport SiteFooter from \"../components/site-footer\"\nimport Helmet from \"react-helmet\"\n\nconst Layout = ({ children }) => {\n  // Scroll to anchor on page load or to the top of the page\n  useEffect(() => {\n    if (typeof window !== \"undefined\") {\n      const hash = window.location.hash\n      if (hash) {\n        const id = hash.replace(\"#\", \"\")\n        const element = document.getElementById(id)\n        if (element) {\n          element.scrollIntoView({ behavior: \"smooth\" })\n        }\n      } else {\n        window.scrollTo(0, 0)\n      }\n    }\n  }, [])\n\n  const handleKeydown = event => {\n    if (event.keyCode === 9 || event.keyCode === 13) {\n      document.body.classList.add(\"user-is-tabbing\")\n    }\n  }\n\n  const handleClick = e => {\n    if (e.detail === 1) {\n      document.body.classList.remove(\"user-is-tabbing\")\n    }\n  }\n\n  const getPage = pathname => {\n    let base = pathname.split(\"/\")\n    let lastSegment = base.pop() || base.pop()\n    if ((lastSegment === \"\") | (lastSegment === \"eng\")) {\n      return \"home\"\n    } else {\n      return lastSegment\n    }\n  }\n\n  useEffect(() => {\n    window.addEventListener(\"click\", handleClick)\n    return () => {\n      window.removeEventListener(\"click\", handleClick)\n    }\n  })\n\n  useEffect(() => {\n    window.addEventListener(\"keydown\", handleKeydown)\n    return () => {\n      window.removeEventListener(\"keydown\", handleKeydown)\n    }\n  })\n\n  function getThemeColor({ pathname }) {\n    if (pathname.includes(\"in-focus\")) {\n      return \"theme-color-in-focus\"\n    } else if (pathname.includes(\"what-we-do\")) {\n      return \"theme-color-what-we-do\"\n    } else if (pathname.includes(\"who-we-are\")) {\n      return \"theme-color-who-we-are\"\n    } else if (\n      pathname.includes(\"downloads\") ||\n      pathname.includes(\"english\") ||\n      pathname.includes(\"arabic\") ||\n      pathname.includes(\"chinese\") ||\n      pathname.includes(\"french\") ||\n      pathname.includes(\"german\") ||\n      pathname.includes(\"japanese\") ||\n      pathname.includes(\"portuguese\") ||\n      pathname.includes(\"russian\") ||\n      pathname.includes(\"spanish\")\n    ) {\n      return \"theme-color-downloads\"\n    } else if (pathname.includes(\"message-from-the-md\")) {\n      return \"theme-color-message-from-the-md\"\n    } else {\n      return null\n    }\n  }\n\n  return (\n    <Location>\n      {({ location }) => (\n        <>\n          <Helmet>\n            <body className={getThemeColor(location)} />\n          </Helmet>\n          <PageMetadata template={getPage(location.pathname)} />\n          <a className=\"skip-main\" href=\"#main\">\n            Skip to main content\n          </a>\n          <SiteHeader path={location.pathname} hash={location.hash} />\n          <span className=\"anchor\" id=\"main\" tabIndex=\"-1\" />\n          <main>{children}</main>\n          <SiteFooter path={location.pathname} />\n        </>\n      )}\n    </Location>\n  )\n}\n\nexport default Layout\n","export default function findObject(\n  dataSource,\n  dataSourceProperty,\n  valueToMatch\n) {\n  return dataSource.find(object => object[dataSourceProperty] === valueToMatch)\n}\n","// H/T https://gist.github.com/hagemann/382adfc57adbd5af078dc93feef01fe1\nfunction slugify(string) {\n  const a =\n    \"àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;\"\n  const b =\n    \"aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------\"\n  const p = new RegExp(a.split(\"\").join(\"|\"), \"g\")\n\n  return string\n    .toString()\n    .toLowerCase()\n    .replace(/\\s+/g, \"-\") // Replace spaces with -\n    .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\n    .replace(/&/g, \"-and-\") // Replace & with 'and'\n    .replace(/[^\\w-]+/g, \"\") // Remove all non-word characters\n    .replace(/--+/g, \"-\") // Replace multiple - with single -\n    .replace(/^-+/, \"\") // Trim - from start of text\n    .replace(/-+$/, \"\") // Trim - from end of text\n}\n\nfunction capitalizeFirstLetter(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport { slugify, capitalizeFirstLetter }\n","var React = require('react');\n\nfunction IconFacebookInline (props) {\n    return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15Zm1.042-23h2.4v3.2h-2.4a.8.8 0 0 0-.8.8v2.4h3.2l-.8 3.2h-2.4V23h-3.2v-6.4h-2.4v-3.2h2.4V11a4 4 0 0 1 4-4Z\",\"fill\":\"#fff\"}));\n}\n\nIconFacebookInline.defaultProps = {\"width\":\"30\",\"height\":\"30\",\"fill\":\"none\"};\n\nmodule.exports = IconFacebookInline;\n\nIconFacebookInline.default = IconFacebookInline;\n","var React = require('react');\n\nfunction IconInstagramInline (props) {\n    return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15Zm4.115-23h-8.077A4.038 4.038 0 0 0 7 11.038v8.077a4.038 4.038 0 0 0 4.038 4.038h8.077a4.038 4.038 0 0 0 4.038-4.038v-8.077A4.038 4.038 0 0 0 19.115 7Zm.404 3.134a.5.5 0 1 0 0 1h.007a.5.5 0 1 0 0-1h-.007Zm-5.665 2.484a2.73 2.73 0 1 1 2.515 4.847 2.73 2.73 0 0 1-2.515-4.847Zm1.805-1.267a3.73 3.73 0 1 0-1.095 7.38 3.73 3.73 0 0 0 1.095-7.38Z\",\"fill\":\"#fff\"}));\n}\n\nIconInstagramInline.defaultProps = {\"width\":\"30\",\"height\":\"30\",\"fill\":\"none\"};\n\nmodule.exports = IconInstagramInline;\n\nIconInstagramInline.default = IconInstagramInline;\n","var React = require('react');\n\nfunction IconLinkedinInline (props) {\n    return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15ZM9.526 9.947a1.474 1.474 0 1 0 0-2.947 1.474 1.474 0 0 0 0 2.947Zm11.968 2.769a4.421 4.421 0 0 0-7.547 3.126V21h2.948v-5.158a1.474 1.474 0 0 1 2.947 0V21h2.947v-5.158a4.421 4.421 0 0 0-1.295-3.126ZM11 12.158V21H8.053v-8.842H11Z\",\"fill\":\"#fff\"}));\n}\n\nIconLinkedinInline.defaultProps = {\"width\":\"30\",\"height\":\"30\",\"fill\":\"none\"};\n\nmodule.exports = IconLinkedinInline;\n\nIconLinkedinInline.default = IconLinkedinInline;\n","var React = require('react');\n\nfunction IconTwitterInline (props) {\n    return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15Zm5.664-19.884a7.9 7.9 0 0 0 2.275-1.109 5.594 5.594 0 0 1-1.507 2.66c.038.197.057.399.058.6C21.49 20.6 13.52 24.223 7 20.6a8.433 8.433 0 0 0 5.071-1.449C5.551 16.252 8.45 9.732 8.45 9.732a7.723 7.723 0 0 0 6.52 3.282v-.725a3.246 3.246 0 0 1 5.695-2.173Z\",\"fill\":\"#fff\"}));\n}\n\nIconTwitterInline.defaultProps = {\"width\":\"30\",\"height\":\"30\",\"fill\":\"none\"};\n\nmodule.exports = IconTwitterInline;\n\nIconTwitterInline.default = IconTwitterInline;\n","var React = require('react');\n\nfunction IconYoutubeInline (props) {\n    return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15Zm7.665-19.24a2.022 2.022 0 0 0-1.41-1.455C20.002 9 15 9 15 9s-5.003 0-6.254.335a2.022 2.022 0 0 0-1.411 1.454A21.09 21.09 0 0 0 7 14.636a21.09 21.09 0 0 0 .335 3.876 2.021 2.021 0 0 0 1.41 1.396c1.252.335 6.255.335 6.255.335s5.003 0 6.254-.334a2.02 2.02 0 0 0 1.411-1.455c.227-1.26.34-2.538.335-3.818.008-1.3-.104-2.597-.335-3.876Zm-9.302 6.254 4.182-2.378-4.182-2.378v4.756Z\",\"fill\":\"#fff\"}));\n}\n\nIconYoutubeInline.defaultProps = {\"width\":\"30\",\"height\":\"30\",\"fill\":\"none\"};\n\nmodule.exports = IconYoutubeInline;\n\nIconYoutubeInline.default = IconYoutubeInline;\n","export default function _defineProperty(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}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : 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  return _extends.apply(this, arguments);\n}"],"names":["module","exports","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","constructor","length","i","keys","it","Array","isArray","size","entries","next","done","has","value","get","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","$$typeof","error","message","match","console","warn","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","map","name","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","key","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","arguments","objectWithoutProperties","indexOf","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","str","encode","undefined","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","forEach","push","tagUnion","property","rafPolyfill","Date","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","requestAnimationFrame","window","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","document","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","querySelectorAll","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","style","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","this","apply","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","set","canUseDOM","propTypes","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","_react","_interopRequireDefault","_htmlTags","__esModule","default","_default","obj2","includes","omit","ex","React","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName","options","ref","_ref$sensitivity","sensitivity","_ref$interval","interval","_ref$timeout","timeout","intentRef","useRef","_useState2","arr","useState","_arrayWithHoles","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","from","test","_unsupportedIterableToArray","_nonIterableRest","isHovering","setIsHovering","x","y","pX","pY","timer","tracker","e","clientX","clientY","compare","Math","abs","dispatchOver","removeEventListener","addEventListener","dispatchOut","useEffect","currentRef","useImperativeHandle","len","arr2","DownloadFullReport","location","title_size","downloads","menu","item","downloadLink","find","reports","className","lang","href","withPrefix","Link","to","Logo","xmlns","width","height","viewBox","fill","d","HomepageLogoLink","passedRef","path","classes","FOCUS_GROUP","FOCUS_DISABLED","useMergeRefs","refs","defaultValue","initialValue","newValue","assignRef","facade","last","hiddenGuard","padding","overflow","position","top","left","InFocusGuard","__assign","t","s","p","ItoI","innerCreateMedium","defaults","middleware","buffer","assigned","read","useMedium","data","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","Promise","resolve","then","createMedium","mediumFocus","currentTarget","mediumBlur","mediumEffect","mediumSidecar","medium","async","ssr","createSidecarMedium","emptyArray","FocusLock","parentRef","_extends2","_React$useState","realObserved","setObserved","observed","isActive","originalFocusedElement","disabled","noFocusGuards","persistentFocus","crossFrame","autoFocus","group","allowTextSelection","whiteList","hasPositiveIndices","_props$shards","shards","_props$as","as","Container","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","returnFocus","focusOptions","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","activeElement","allowDefer","returnFocusTo","focus","howToReturnFocus","returnFocusOptions","onFocus","event","onBlur","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","tabIndex","componentDidMount","getParentNode","node","nodeType","Node","DOCUMENT_FRAGMENT_NODE","host","isTopNode","DOCUMENT_NODE","isVisibleUncached","checkParent","ELEMENT_NODE","computedStyle","getComputedStyle","getPropertyValue","isElementHidden","isVisibleCached","visibilityCache","cached","result","isAutoFocusAllowedCached","cache","isAutoFocusAllowed","isAutoFocusAllowedUncached","getDataset","dataset","isHTMLInputElement","isRadioElement","isGuard","_a","Boolean","focusGuard","isNotAGuard","isDefined","correctNode","nodes","el","checked","findSelectedRadio","pickFirstFocus","pickFocusable","NEW_FOCUS","newFocus","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastIndex","lastNodeInside","indexDiff","firstNodeIndex","lastNodeIndex","correctedNodes","add","correctedIndexDiff","returnFirstNode","returnLastNode","toArray","ret","asArray","tabSort","tabDiff","orderByTabIndex","filterNegative","keepGuards","sort","queryTabbables","queryGuardTabbables","getFocusablesWithShadowDom","parent","withGuards","shadowRoot","acc","matches","getFocusables","parents","filterFocusable","isHTMLButtonElement","notHiddenInput","filterAutoFocusable","getTabbableNodes","topNodes","getAllTabbableNodes","parentAutofocusables","topNode","parentFocus","contains","scope","element","getPrototypeOf","getTopParent","getAllAffectedNodes","currentNode","contained","l","j","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","_","filterNested","getNestedShadowActiveElement","getActiveElement","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","entry","subEntry","common","getFocusMerge","commonParent","anyFocusable","innerElements","srcNodes","dstNodes","remap","autoFocusables","orderedInnerElements","entity","newId","autoFocusable","allParentAutofocusables","autofocus","guardCount","lockDisabled","focusable","contentWindow","focusInsideIframe","focusInside","getFocusabledIn","lockItem","guard","deferAction","action","setImmediate","isFreeFocus","body","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","startIndex","end","step","allNodes","lastGuard","focusAutoGuard","extractRef","checkInHost","check","boundary","activateTrap","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","area","withinHost","blur","newActiveElement","focusedIndex","_ref3","onTrap","stopPropagation","preventDefault","observerNode","onWindowBlur","moveFocusInside","_ref5","traps","trap","lastTrap","sameTrap","_ref6","FocusLockCombination","SubNavigation","activeItem","handleScroll","documentElement","scrollHeight","innerHeight","scrollY","pageYOffset","progress","round","parentMenu","findObject","menuData","menuLength","findIndex","flex","renderChildren","MobileSubNavigation","expanded","setExpanded","currentItem","items","onClick","SiteHeader","hash","homepageLogoLink","mobileNavButton","mobileNavIsActive","setMobileNavIsActive","NavMainItem","itemSlug","useHoverIntent","isNavItemActive","paths","getPageParent","getPageSlug","slug","normalizePath","toggleMobileNav","BODY_LOCK","classList","remove","toggleNavItemOnFocus","focusClass","focusedItemParent","closest","handleKeydown","keyCode","getThemeColor","slugify","hideDesktop","subchild","PageMetadata","template","twitterCard","timeToRead","siteUrl","description","site","useStaticQuery","siteMetadata","useSiteMetadata","pageTitle","pageFeaturedImagePath","featured_image","pageFeaturedImage","images","edges","relativePath","childImageSharp","fluid","src","Helmet","Cta","text","targetBlank","rel","SiteFooter","socialLinksTypes","facebook","Facebook","twitter","Twitter","instagram","Instagram","linkedin","LinkedIn","youtube","YouTube","socialLinks","SvgIcon","_satellite","getElementById","scrollIntoView","behavior","scrollTo","handleClick","detail","getPage","pathname","lastSegment","pop","Location","dataSource","dataSourceProperty","valueToMatch","object","c","charAt","IconFacebookInline","IconInstagramInline","IconLinkedinInline","IconTwitterInline","IconYoutubeInline"],"sourceRoot":""}