PageSourceSearch

https://podtoo.com/_next/static/chunks/5586-33c6375f9a005457.js

js podtoo.com collected 2026-09-25 00:49:40 UTC 129,028 bytes, 3,749 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="966b283f-5615-4a97-a45a-a0a49c5ee504",e._sentryDebugIdIdentifier="sentry-dbid-966b283f-5615-4a97-a45a-a0a49c5ee504");}catch(e){}}();
2"use strict";
3(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[5586],{
4
5/***/ 82489:
6/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7
8
9// EXPORTS
10__webpack_require__.d(__webpack_exports__, {
11  G: function() { return /* binding */ FontAwesomeIcon; }
12});
13
14;// CONCATENATED MODULE: ./node_modules/@fortawesome/fontawesome-svg-core/index.mjs
15/*!
16 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
17 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
18 * Copyright 2024 Fonticons, Inc.
19 */
20function _defineProperty(e, r, t) {
21  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
22    value: t,
23    enumerable: !0,
24    configurable: !0,
25    writable: !0
26  }) : e[r] = t, e;
27}
28function _inherits(t, e) {
29  if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
30  t.prototype = Object.create(e && e.prototype, {
31    constructor: {
32      value: t,
33      writable: !0,
34      configurable: !0
35    }
36  }), Object.defineProperty(t, "prototype", {
37    writable: !1
38  }), e && _setPrototypeOf(t, e);
39}
40function ownKeys(e, r) {
41  var t = Object.keys(e);
42  if (Object.getOwnPropertySymbols) {
43    var o = Object.getOwnPropertySymbols(e);
44    r && (o = o.filter(function (r) {
45      return Object.getOwnPropertyDescriptor(e, r).enumerable;
46    })), t.push.apply(t, o);
47  }
48  return t;
49}
50function _objectSpread2(e) {
51  for (var r = 1; r < arguments.length; r++) {
52    var t = null != arguments[r] ? arguments[r] : {};
53    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
54      _defineProperty(e, r, t[r]);
55    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
56      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
57    });
58  }
59  return e;
60}
61function _setPrototypeOf(t, e) {
62  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
63    return t.__proto__ = e, t;
64  }, _setPrototypeOf(t, e);
65}
66function _toPrimitive(t, r) {
67  if ("object" != typeof t || !t) return t;
68  var e = t[Symbol.toPrimitive];
69  if (void 0 !== e) {
70    var i = e.call(t, r || "default");
71    if ("object" != typeof i) return i;
72    throw new TypeError("@@toPrimitive must return a primitive value.");
73  }
74  return ("string" === r ? String : Number)(t);
75}
76function _toPropertyKey(t) {
77  var i = _toPrimitive(t, "string");
78  return "symbol" == typeof i ? i : i + "";
79}
80function _wrapRegExp() {
81  _wrapRegExp = function (e, r) {
82    return new BabelRegExp(e, void 0, r);
83  };
84  var e = RegExp.prototype,
85    r = new WeakMap();
86  function BabelRegExp(e, t, p) {
87    var o = RegExp(e, t);
88    return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);
89  }
90  function buildGroups(e, t) {
91    var p = r.get(t);
92    return Object.keys(p).reduce(function (r, t) {
93      var o = p[t];
94      if ("number" == typeof o) r[t] = e[o];else {
95        for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;
96        r[t] = e[o[i]];
97      }
98      return r;
99    }, Object.create(null));
100  }
101  return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {
102    var t = e.exec.call(this, r);
103    if (t) {
104      t.groups = buildGroups(t, this);
105      var p = t.indices;
106      p && (p.groups = buildGroups(p, this));
107    }
108    return t;
109  }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {
110    if ("string" == typeof p) {
111      var o = r.get(this);
112      return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) {
113        var t = o[r];
114        return "$" + (Array.isArray(t) ? t.join("$") : t);
115      }));
116    }
117    if ("function" == typeof p) {
118      var i = this;
119      return e[Symbol.replace].call(this, t, function () {
120        var e = arguments;
121        return "object" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);
122      });
123    }
124    return e[Symbol.replace].call(this, t, p);
125  }, _wrapRegExp.apply(this, arguments);
126}
127
128const noop = () => {};
129let _WINDOW = {};
130let _DOCUMENT = {};
131let _MUTATION_OBSERVER = null;
132let _PERFORMANCE = {
133  mark: noop,
134  measure: noop
135};
136try {
137  if (typeof window !== 'undefined') _WINDOW = window;
138  if (typeof document !== 'undefined') _DOCUMENT = document;
139  if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;
140  if (typeof performance !== 'undefined') _PERFORMANCE = performance;
141} catch (e) {}
142const {
143  userAgent = ''
144} = _WINDOW.navigator || {};
145const WINDOW = _WINDOW;
146const DOCUMENT = _DOCUMENT;
147const MUTATION_OBSERVER = _MUTATION_OBSERVER;
148const PERFORMANCE = _PERFORMANCE;
149const IS_BROWSER = !!WINDOW.document;
150const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
151const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
152
153var p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,
154  g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;
155var S = {
156    classic: {
157      fa: "solid",
158      fas: "solid",
159      "fa-solid": "solid",
160      far: "regular",
161      "fa-regular": "regular",
162      fal: "light",
163      "fa-light": "light",
164      fat: "thin",
165      "fa-thin": "thin",
166      fab: "brands",
167      "fa-brands": "brands"
168    },
169    duotone: {
170      fa: "solid",
171      fad: "solid",
172      "fa-solid": "solid",
173      "fa-duotone": "solid",
174      fadr: "regular",
175      "fa-regular": "regular",
176      fadl: "light",
177      "fa-light": "light",
178      fadt: "thin",
179      "fa-thin": "thin"
180    },
181    sharp: {
182      fa: "solid",
183      fass: "solid",
184      "fa-solid": "solid",
185      fasr: "regular",
186      "fa-regular": "regular",
187      fasl: "light",
188      "fa-light": "light",
189      fast: "thin",
190      "fa-thin": "thin"
191    },
192    "sharp-duotone": {
193      fa: "solid",
194      fasds: "solid",
195      "fa-solid": "solid",
196      fasdr: "regular",
197      "fa-regular": "regular",
198      fasdl: "light",
199      "fa-light": "light",
200      fasdt: "thin",
201      "fa-thin": "thin"
202    }
203  },
204  A = {
205    GROUP: "duotone-group",
206    SWAP_OPACITY: "swap-opacity",
207    PRIMARY: "primary",
208    SECONDARY: "secondary"
209  },
210  P = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"];
211var s = "classic",
212  t = "duotone",
213  r = "sharp",
214  o = "sharp-duotone",
215  L = [s, t, r, o];
216var G = {
217    classic: {
218      900: "fas",
219      400: "far",
220      normal: "far",
221      300: "fal",
222      100: "fat"
223    },
224    duotone: {
225      900: "fad",
226      400: "fadr",
227      300: "fadl",
228      100: "fadt"
229    },
230    sharp: {
231      900: "fass",
232      400: "fasr",
233      300: "fasl",
234      100: "fast"
235    },
236    "sharp-duotone": {
237      900: "fasds",
238      400: "fasdr",
239      300: "fasdl",
240      100: "fasdt"
241    }
242  };
243var lt = {
244    "Font Awesome 6 Free": {
245      900: "fas",
246      400: "far"
247    },
248    "Font Awesome 6 Pro": {
249      900: "fas",
250      400: "far",
251      normal: "far",
252      300: "fal",
253      100: "fat"
254    },
255    "Font Awesome 6 Brands": {
256      400: "fab",
257      normal: "fab"
258    },
259    "Font Awesome 6 Duotone": {
260      900: "fad",
261      400: "fadr",
262      normal: "fadr",
263      300: "fadl",
264      100: "fadt"
265    },
266    "Font Awesome 6 Sharp": {
267      900: "fass",
268      400: "fasr",
269      normal: "fasr",
270      300: "fasl",
271      100: "fast"
272    },
273    "Font Awesome 6 Sharp Duotone": {
274      900: "fasds",
275      400: "fasdr",
276      normal: "fasdr",
277      300: "fasdl",
278      100: "fasdt"
279    }
280  };
281var pt = new Map([["classic", {
282    defaultShortPrefixId: "fas",
283    defaultStyleId: "solid",
284    styleIds: ["solid", "regular", "light", "thin", "brands"],
285    futureStyleIds: [],
286    defaultFontWeight: 900
287  }], ["sharp", {
288    defaultShortPrefixId: "fass",
289    defaultStyleId: "solid",
290    styleIds: ["solid", "regular", "light", "thin"],
291    futureStyleIds: [],
292    defaultFontWeight: 900
293  }], ["duotone", {
294    defaultShortPrefixId: "fad",
295    defaultStyleId: "solid",
296    styleIds: ["solid", "regular", "light", "thin"],
297    futureStyleIds: [],
298    defaultFontWeight: 900
299  }], ["sharp-duotone", {
300    defaultShortPrefixId: "fasds",
301    defaultStyleId: "solid",
302    styleIds: ["solid", "regular", "light", "thin"],
303    futureStyleIds: [],
304    defaultFontWeight: 900
305  }]]),
306  xt = {
307    classic: {
308      solid: "fas",
309      regular: "far",
310      light: "fal",
311      thin: "fat",
312      brands: "fab"
313    },
314    duotone: {
315      solid: "fad",
316      regular: "fadr",
317      light: "fadl",
318      thin: "fadt"
319    },
320    sharp: {
321      solid: "fass",
322      regular: "fasr",
323      light: "fasl",
324      thin: "fast"
325    },
326    "sharp-duotone": {
327      solid: "fasds",
328      regular: "fasdr",
329      light: "fasdl",
330      thin: "fasdt"
331    }
332  };
333var Ft = ["fak", "fa-kit", "fakd", "fa-kit-duotone"],
334  St = {
335    kit: {
336      fak: "kit",
337      "fa-kit": "kit"
338    },
339    "kit-duotone": {
340      fakd: "kit-duotone",
341      "fa-kit-duotone": "kit-duotone"
342    }
343  },
344  At = ["kit"];
345var Ct = {
346  kit: {
347    "fa-kit": "fak"
348  },
349  "kit-duotone": {
350    "fa-kit-duotone": "fakd"
351  }
352};
353var Lt = ["fak", "fakd"],
354  Wt = {
355    kit: {
356      fak: "fa-kit"
357    },
358    "kit-duotone": {
359      fakd: "fa-kit-duotone"
360    }
361  };
362var Et = {
363    kit: {
364      kit: "fak"
365    },
366    "kit-duotone": {
367      "kit-duotone": "fakd"
368    }
369  };
370
371var t$1 = {
372    GROUP: "duotone-group",
373    SWAP_OPACITY: "swap-opacity",
374    PRIMARY: "primary",
375    SECONDARY: "secondary"
376  },
377  r$1 = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"];
378var bt$1 = ["fak", "fa-kit", "fakd", "fa-kit-duotone"];
379var Yt = {
380    "Font Awesome Kit": {
381      400: "fak",
382      normal: "fak"
383    },
384    "Font Awesome Kit Duotone": {
385      400: "fakd",
386      normal: "fakd"
387    }
388  };
389var ua = {
390    classic: {
391      "fa-brands": "fab",
392      "fa-duotone": "fad",
393      "fa-light": "fal",
394      "fa-regular": "far",
395      "fa-solid": "fas",
396      "fa-thin": "fat"
397    },
398    duotone: {
399      "fa-regular": "fadr",
400      "fa-light": "fadl",
401      "fa-thin": "fadt"
402    },
403    sharp: {
404      "fa-solid": "fass",
405      "fa-regular": "fasr",
406      "fa-light": "fasl",
407      "fa-thin": "fast"
408    },
409    "sharp-duotone": {
410      "fa-solid": "fasds",
411      "fa-regular": "fasdr",
412      "fa-light": "fasdl",
413      "fa-thin": "fasdt"
414    }
415  },
416  I$1 = {
417    classic: ["fas", "far", "fal", "fat", "fad"],
418    duotone: ["fadr", "fadl", "fadt"],
419    sharp: ["fass", "fasr", "fasl", "fast"],
420    "sharp-duotone": ["fasds", "fasdr", "fasdl", "fasdt"]
421  },
422  ga = {
423    classic: {
424      fab: "fa-brands",
425      fad: "fa-duotone",
426      fal: "fa-light",
427      far: "fa-regular",
428      fas: "fa-solid",
429      fat: "fa-thin"
430    },
431    duotone: {
432      fadr: "fa-regular",
433      fadl: "fa-light",
434      fadt: "fa-thin"
435    },
436    sharp: {
437      fass: "fa-solid",
438      fasr: "fa-regular",
439      fasl: "fa-light",
440      fast: "fa-thin"
441    },
442    "sharp-duotone": {
443      fasds: "fa-solid",
444      fasdr: "fa-regular",
445      fasdl: "fa-light",
446      fasdt: "fa-thin"
447    }
448  },
449  x = ["fa-solid", "fa-regular", "fa-light", "fa-thin", "fa-duotone", "fa-brands"],
450  Ia = ["fa", "fas", "far", "fal", "fat", "fad", "fadr", "fadl", "fadt", "fab", "fass", "fasr", "fasl", "fast", "fasds", "fasdr", "fasdl", "fasdt", ...r$1, ...x],
451  m$1 = ["solid", "regular", "light", "thin", "duotone", "brands"],
452  c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
453  F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),
454  ma = [...Object.keys(I$1), ...m$1, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vert
454ical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(a => "".concat(a, "x"))).concat(F$1.map(a => "w-".concat(a)));
455var wa = {
456    "Font Awesome 5 Free": {
457      900: "fas",
458      400: "far"
459    },
460    "Font Awesome 5 Pro": {
461      900: "fas",
462      400: "far",
463      normal: "far",
464      300: "fal"
465    },
466    "Font Awesome 5 Brands": {
467      400: "fab",
468      normal: "fab"
469    },
470    "Font Awesome 5 Duotone": {
471      900: "fad"
472    }
473  };
474
475const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
476const UNITS_IN_GRID = 16;
477const DEFAULT_CSS_PREFIX = 'fa';
478const DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
479const DATA_FA_I2SVG = 'data-fa-i2svg';
480const DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
481const DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';
482const DATA_PREFIX = 'data-prefix';
483const DATA_ICON = 'data-icon';
484const HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
485const MUTATION_APPROACH_ASYNC = 'async';
486const TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
487const PRODUCTION = (() => {
488  try {
489    return "production" === 'production';
490  } catch (e$$1) {
491    return false;
492  }
493})();
494function familyProxy(obj) {
495  // Defaults to the classic family if family is not available
496  return new Proxy(obj, {
497    get(target, prop) {
498      return prop in target ? target[prop] : target[s];
499    }
500  });
501}
502const _PREFIX_TO_STYLE = _objectSpread2({}, S);
503
504// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any
505// duotone styles.  But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding
506// {'fa-duotone': 'duotone'}
507_PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {
508  'fa-duotone': 'duotone'
509}), S[s]), St['kit']), St['kit-duotone']);
510const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);
511const _STYLE_TO_PREFIX = _objectSpread2({}, xt);
512
513// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any
514// duotone styles.  But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}
515_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {
516  duotone: 'fad'
517}), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']);
518const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);
519const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga);
520_PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']);
521const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);
522const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua);
523_LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']);
524const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);
525const ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape
526
527const LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
528const FONT_FAMILY_PATTERN = g;
529const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G);
530const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);
531const ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
532const DUOTONE_CLASSES = A;
533const RESERVED_CLASSES = [...At, ...ma];
534
535const initial = WINDOW.FontAwesomeConfig || {};
536function getAttrConfig(attr) {
537  var element = DOCUMENT.querySelector('script[' + attr + ']');
538  if (element) {
539    return element.getAttribute(attr);
540  }
541}
542function coerce(val) {
543  // Getting an empty string will occur if the attribute is set on the HTML tag but without a value
544  // We'll assume that this is an indication that it should be toggled to true
545  if (val === '') return true;
546  if (val === 'false') return false;
547  if (val === 'true') return true;
548  return val;
549}
550if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
551  const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
552  attrs.forEach(_ref => {
553    let [attr, key] = _ref;
554    const val = coerce(getAttrConfig(attr));
555    if (val !== undefined && val !== null) {
556      initial[key] = val;
557    }
558  });
559}
560const _default = {
561  styleDefault: 'solid',
562  familyDefault: s,
563  cssPrefix: DEFAULT_CSS_PREFIX,
564  replacementClass: DEFAULT_REPLACEMENT_CLASS,
565  autoReplaceSvg: true,
566  autoAddCss: true,
567  autoA11y: true,
568  searchPseudoElements: false,
569  observeMutations: true,
570  mutateApproach: 'async',
571  keepOriginalSource: true,
572  measurePerformance: false,
573  showMissingIcons: true
574};
575
576// familyPrefix is deprecated but we must still support it if present
577if (initial.familyPrefix) {
578  initial.cssPrefix = initial.familyPrefix;
579}
580const _config = _objectSpread2(_objectSpread2({}, _default), initial);
581if (!_config.autoReplaceSvg) _config.observeMutations = false;
582const config = {};
583Object.keys(_default).forEach(key => {
584  Object.defineProperty(config, key, {
585    enumerable: true,
586    set: function (val) {
587      _config[key] = val;
588      _onChangeCb.forEach(cb => cb(config));
589    },
590    get: function () {
591      return _config[key];
592    }
593  });
594});
595
596// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0
597Object.defineProperty(config, 'familyPrefix', {
598  enumerable: true,
599  set: function (val) {
600    _config.cssPrefix = val;
601    _onChangeCb.forEach(cb => cb(config));
602  },
603  get: function () {
604    return _config.cssPrefix;
605  }
606});
607WINDOW.FontAwesomeConfig = config;
608const _onChangeCb = [];
609function onChange(cb) {
610  _onChangeCb.push(cb);
611  return () => {
612    _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);
613  };
614}
615
616const d$2 = UNITS_IN_GRID;
617const meaninglessTransform = {
618  size: 16,
619  x: 0,
620  y: 0,
621  rotate: 0,
622  flipX: false,
623  flipY: false
624};
625function insertCss(css) {
626  if (!css || !IS_DOM) {
627    return;
628  }
629  const style = DOCUMENT.createElement('style');
630  style.setAttribute('type', 'text/css');
631  style.innerHTML = css;
632  const headChildren = DOCUMENT.head.childNodes;
633  let beforeChild = null;
634  for (let i = headChildren.length - 1; i > -1; i--) {
635    const child = headChildren[i];
636    const tagName = (child.tagName || '').toUpperCase();
637    if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
638      beforeChild = child;
639    }
640  }
641  DOCUMENT.head.insertBefore(style, beforeChild);
642  return css;
643}
644const idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
645function nextUniqueId() {
646  let size = 12;
647  let id = '';
648  while (size-- > 0) {
649    id += idPool[Math.random() * 62 | 0];
650  }
651  return id;
652}
653function toArray(obj) {
654  const array = [];
655  for (let i = (obj || []).length >>> 0; i--;) {
656    array[i] = obj[i];
657  }
658  return array;
659}
660function classArray(node) {
661  if (node.classList) {
662    return toArray(node.classList);
663  } else {
664    return (node.getAttribute('class') || '').split(' ').filter(i => i);
665  }
666}
667function htmlEscape(str) {
668  return "".concat(str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
669}
670function joinAttributes(attributes) {
671  return Object.keys(attributes || {}).reduce((acc, attributeName) => {
672    return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" ");
673  }, '').trim();
674}
675function joinStyles(styles) {
676  return Object.keys(styles || {}).reduce((acc, styleName) => {
677    return acc + "".concat(styleName, ": ").concat(styles[styleName].trim(), ";");
678  }, '');
679}
680function transformIsMeaningful(transform) {
681  return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
682}
683function transformForSvg(_ref) {
684  let {
685    transform,
686    containerWidth,
687    iconWidth
688  } = _ref;
689  const outer = {
690    transform: "translate(".concat(containerWidth / 2, " 256)")
691  };
692  const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
693  const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
694  const innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
695  const inner = {
696    transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
697  };
698  const path = {
699    transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
700  };
701  return {
702    outer,
703    inner,
704    path
705  };
706}
707function transformForCss(_ref2) {
708  let {
709    transform,
vendor: 5,031 bytes, lines 710-727
710    width = UNITS_IN_GRID,
711    height = UNITS_IN_GRID,
712    startCentered = false
713  } = _ref2;
714  let val = '';
715  if (startCentered && IS_IE) {
716    val += "translate(".concat(transform.x / d$2 - width / 2, "em, ").concat(transform.y / d$2 - height / 2, "em) ");
717  } else if (startCentered) {
718    val += "translate(calc(-50% + ".concat(transform.x / d$2, "em), calc(-50% + ").concat(transform.y / d$2, "em)) ");
719  } else {
720    val += "translate(".concat(transform.x / d$2, "em, ").concat(transform.y / d$2, "em) ");
721  }
722  val += "scale(".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), ") ");
723  val += "rotate(".concat(transform.rotate, "deg) ");
724  return val;
725}
726
727var baseStyles = ":root, :host {\n  --fa-font-solid: normal 900 1em/1 \"Font Awesome 6 Free\";\n  --fa-font-regular: normal 400 1em/1 \"Font Awesome 6 Free\";\n  --fa-font-light: normal 300 1em/1 \"Font Awesome 6 Pro\";\n  --fa-font-thin: normal 100 1em/1 \"Font Awesome 6 Pro\";\n  --fa-font-duotone: normal 900 1em/1 \"Font Awesome 6 Duotone\";\n  --fa-font-duotone-regular: normal 400 1em/1 \"Font Awesome 6 Duotone\";\n  --fa-font-duotone-light: normal 300 1em/1 \"Font Awesome 6 Duotone\";\n  --fa-font-duotone-thin: normal 100 1em/1 \"Font Awesome 6 Duotone\";\n  --fa-font-brands: normal 400 1em/1 \"Font Awesome 6 Brands\";\n  --fa-font-sharp-solid: normal 900 1em/1 \"Font Awesome 6 Sharp\";\n  --fa-font-sharp-regular: normal 400 1em/1 \"Font Awesome 6 Sharp\";\n  --fa-font-sharp-light: normal 300 1em/1 \"Font Awesome 6 Sharp\";\n  --fa-font-sharp-thin: normal 100 1em/1 \"Font Awesome 6 Sharp\";\n  --fa-font-sharp-duotone-solid: normal 900 1em/1 \"Font Awesome 6 Sharp Duotone\";\n  --fa-font-sharp-duotone-regular: normal 400 1em/1 \"Font Awesome 6 Sharp Duotone\";\n  --fa-font-sharp-duotone-light: normal 300 1em/1 \"Font Awesome 6 Sharp Duotone\";\n  --fa-font-sharp-duotone-thin: normal 100 1em/1 \"Font Awesome 6 Sharp Duotone\";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n  overflow: visible;\n  box-sizing: content-box;\n}\n\n.svg-inline--fa {\n  display: var(--fa-display, inline-block);\n  height: 1em;\n  overflow: visible;\n  vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n  vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n  vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n  vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n  vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n  vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n  vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n  margin-right: var(--fa-pull-margin, 0.3em);\n  width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n  margin-left: var(--fa-pull-margin, 0.3em);\n  width: auto;\n}\n.svg-inline--fa.fa-li {\n  width: var(--fa-li-width, 2em);\n  top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n  width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n  display: inline-block;\n  position: absolute;\n  text-align: center;\n}\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -0.125em;\n  width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n  transform-origin: center center;\n}\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%);\n  transform-origin: center center;\n}\n\n.fa-layers-counter {\n  background-color: var(--fa-counter-background-color, #ff253a);\n  border-radius: var(--fa-counter-border-radius, 1em);\n  box-sizing: border-box;\n  color: var(--fa-inverse, #fff);\n  line-height: var(--fa-counter-line-height, 1);\n  max-width: var(--fa-counter-max-width, 5em);\n  min-width: var(--fa-counter-min-width, 1.5em);\n  overflow: hidden;\n  padding: var(--fa-counter-padding, 0.25em 0.5em);\n  right: var(--fa-right, 0);\n  text-overflow: ellipsis;\n  top: var(--fa-top, 0);\n  transform: scale(var(--fa-counter-scale, 0.25));\n  transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n  bottom: var(--fa-bottom, 0);\n  right: var(--fa-right, 0);\n  top: auto;\n  transform: scale(var(--fa-layers-scale, 0.25));\n  transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n  bottom: var(--fa-bottom, 0);\n  left: var(--fa-left, 0);\n  right: auto;\n  top: auto;\n  transform: scale(var(--fa-layers-scale, 0.25));\n  transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n  top: var(--fa-top, 0);\n  right: var(--fa-right, 0);\n  transform: scale(var(--fa-layers-scale, 0.25));\n  transform-origin: top right;\n}\n\n.fa-layers-top-left {\n  left: var(--fa-left, 0);\n  right: auto;\n  top: var(--fa-top, 0);\n  transform: scale(var(--fa-layers-scale, 0.25));\n  transform-origin: top left;\n}\n\n.fa-1x {\n  font-size: 1em;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;
727\n}\n\n.fa-6x {\n  font-size: 6em;\n}\n\n.fa-7x {\n  font-size: 7em;\n}\n\n.fa-8x {\n  font-size: 8em;\n}\n\n.fa-9x {\n  font-size: 9em;\n}\n\n.fa-10x {\n  font-size: 10em;\n}\n\n.fa-2xs {\n  font-size: 0.625em;\n  line-height: 0.1em;\n  vertical-align: 0.225em;\n}\n\n.fa-xs {\n  font-size: 0.75em;\n  line-height: 0.0833333337em;\n  vertical-align: 0.125em;\n}\n\n.fa-sm {\n  font-size: 0.875em;\n  line-height: 0.0714285718em;\n  vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n  font-size: 1.25em;\n  line-height: 0.05em;\n  vertical-align: -0.075em;\n}\n\n.fa-xl {\n  font-size: 1.5em;\n  line-height: 0.0416666682em;\n  vertical-align: -0.125em;\n}\n\n.fa-2xl {\n  font-size: 2em;\n  line-height: 0.03125em;\n  vertical-align: -0.1875em;\n}\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em;\n}\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: var(--fa-li-margin, 2.5em);\n  padding-left: 0;\n}\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  left: calc(-1 * var(--fa-li-width, 2em));\n  position: absolute;\n  text-align: center;\n  width: var(--fa-li-width, 2em);\n  line-height: inherit;\n}\n\n.fa-border {\n  border-color: var(--fa-border-color, #eee);\n  border-radius: var(--fa-border-radius, 0.1em);\n  border-style: var(--fa-border-style, solid);\n  border-width: var(--fa-border-width, 0.08em);\n  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n  float: left;\n  margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n  float: right;\n  margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n  animation-name: fa-beat;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n  animation-name: fa-bounce;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n  animation-name: fa-fade;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n  animation-name: fa-beat-fade;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n  animation-name: fa-flip;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n  animation-name: fa-shake;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n  animation-name: fa-spin;\n  animation-delay: var(--fa-animation-delay, 0s);\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 2s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n  --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n  animation-name: fa-spin;\n  animation-direction: var(--fa-animation-direction, normal);\n  animation-duration: var(--fa-animation-duration, 1s);\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n  animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n    animation-delay: -1ms;\n    animation-duration: 1ms;\n    animation-iteration-count: 1;\n    transition-delay: 0s;\n    transition-duration: 0s;\n  }\n}\n@keyframes fa-beat {\n  0%, 90% {\n    transform: scale(1);\n  }\n  45% {\n    transform: scale(var(--fa-beat-scale, 1.25));\n  }\n}\n@keyframes fa-bounce {\n  0% {\n    transform: scale(1, 1) translateY(0);\n  }\n  10% {\n    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n  }\n  30% {\n    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n  }\n  50% {\n    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n  }\n  57% {\n    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n  }\n  64% {\n    transform: scale(1, 1) translateY(0);\n  }\n  100% {\n    transform: scale(1, 1) translateY(0);\n  }\n}\n@keyframes fa-fade {\n  50% {\n    opacity: var(--fa-fade-opacity, 0.4);\n  }\n}\n@keyframes fa-beat-fade {\n  0%, 100% {\n    opacity: var(--fa-beat-fade-opacity, 0.4);\n    transform: scale(1);\n  }\n  50% {\n    opacity: 1;\n    transform: scale(var(--fa-beat-fade-scale, 1.125));\n  }\n}\n@keyframes fa-flip {\n  50% {\n    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n  }\n}\n@keyframes fa-shake {\n  0% {\n    transform: rotate(-15deg);\n  }\n  4% {\n    transform: rotate(15deg);\n  }\n  8%, 24% {\n    transform: rotate(-18deg);\n  }\n  12%, 28% {\n    transform: rotate(18deg);\n  }\n  16% {\n    transform: rotate(-22deg);\n  }\n  20% {\n    transform: rotate(22deg);\n  }\n  32% {\n    transform: rotate(-12deg);\n  }\n  36% {\n    transform: rotate(12deg);\n  }\n  40%, 100% {\n    transform: rotate(0deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n.fa-rotate-90 {\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  transform: scale(-1, 1);\n}
727\n\n.fa-flip-vertical {\n  transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n  transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n  transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.fa-stack {\n  display: inline-block;\n  vertical-align: middle;\n  height: 2em;\n  position: relative;\n  width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em;\n}\n\n.fa-inverse {\n  color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black;\n}";
728
729function css() {
730  const dcp = DEFAULT_CSS_PREFIX;
731  const drc = DEFAULT_REPLACEMENT_CLASS;
732  const fp = config.cssPrefix;
733  const rc = config.replacementClass;
734  let s = baseStyles;
735  if (fp !== dcp || rc !== drc) {
736    const dPatt = new RegExp("\\.".concat(dcp, "\\-"), 'g');
737    const customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), 'g');
738    const rPatt = new RegExp("\\.".concat(drc), 'g');
739    s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc));
740  }
741  return s;
742}
743let _cssInserted = false;
744function ensureCss() {
745  if (config.autoAddCss && !_cssInserted) {
746    insertCss(css());
747    _cssInserted = true;
748  }
749}
750var InjectCSS = {
751  mixout() {
752    return {
753      dom: {
754        css,
755        insertCss: ensureCss
756      }
757    };
758  },
759  hooks() {
760    return {
761      beforeDOMElementCreation() {
762        ensureCss();
763      },
764      beforeI2svg() {
765        ensureCss();
766      }
767    };
768  }
769};
770
771const w = WINDOW || {};
772if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
773if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
774if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
775if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
776var namespace = w[NAMESPACE_IDENTIFIER];
777
778const functions = [];
779const listener = function () {
780  DOCUMENT.removeEventListener('DOMContentLoaded', listener);
781  loaded = 1;
782  functions.map(fn => fn());
783};
784let loaded = false;
785if (IS_DOM) {
786  loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
787  if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
788}
789function domready (fn) {
790  if (!IS_DOM) return;
791  loaded ? setTimeout(fn, 0) : functions.push(fn);
792}
793
794function toHtml(abstractNodes) {
795  const {
796    tag,
797    attributes = {},
798    children = []
799  } = abstractNodes;
800  if (typeof abstractNodes === 'string') {
801    return htmlEscape(abstractNodes);
802  } else {
803    return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), "</").concat(tag, ">");
804  }
805}
806
807function iconFromMapping(mapping, prefix, iconName) {
808  if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
809    return {
810      prefix,
811      iconName,
812      icon: mapping[prefix][iconName]
813    };
814  }
815}
816
817/**
818 * Internal helper to bind a function known to have 4 arguments
819 * to a given context.
820 */
821var bindInternal4 = function bindInternal4(func, thisContext) {
822  return function (a, b, c, d) {
823    return func.call(thisContext, a, b, c, d);
824  };
825};
826
827/**
828 * # Reduce
829 *
830 * A fast object `.reduce()` implementation.
831 *
832 * @param  {Object}   subject      The object to reduce over.
833 * @param  {Function} fn           The reducer function.
834 * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].
835 * @param  {Object}   thisContext  The context for the reducer.
836 * @return {mixed}                 The final result.
837 */
838var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {
839  var keys = Object.keys(subject),
840    length = keys.length,
841    iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
842    i,
843    key,
844    result;
845  if (initialValue === undefined) {
846    i = 1;
847    result = subject[keys[0]];
848  } else {
849    i = 0;
850    result = initialValue;
851  }
852  for (; i < length; i++) {
853    key = keys[i];
854    result = iterator(result, subject[key], key, subject);
855  }
856  return result;
857};
858
859/**
860 * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT
861 *
862 * Copyright Mathias Bynens <https://mathiasbynens.be/>
863
864 * Permission is hereby granted, free of charge, to any person obtaining
865 * a copy of this software and associated documentation files (the
866 * "Software"), to deal in the Software without restriction, including
867 * without limitation the rights to use, copy, modify, merge, publish,
868 * distribute, sublicense, and/or sell copies of the Software, and to
869 * permit persons to whom the Software is furnished to do so, subject to
870 * the following conditions:
871
872 * The above copyright notice and this permission notice shall be
873 * included in all copies or substantial portions of the Software.
874
875 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
876 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
877 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
878 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
879 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
880 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
881 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
882 */
883
884function ucs2decode(string) {
885  const output = [];
886  let counter = 0;
887  const length = string.length;
888  while (counter < length) {
889    const value = string.charCodeAt(counter++);
890    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
891      const extra = string.charCodeAt(counter++);
892      if ((extra & 0xFC00) == 0xDC00) {
893        // eslint-disable-line eqeqeq
894        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
895      } else {
896        output.push(value);
897        counter--;
898      }
899    } else {
900      output.push(value);
901    }
902  }
903  return output;
904}
905function toHex(unicode) {
906  const decoded = ucs2decode(unicode);
907  return decoded.length === 1 ? decoded[0].toString(16) : null;
908}
909function codePointAt(string, index) {
910  const size = string.length;
911  let first = string.charCodeAt(index);
912  let second;
913  if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {
914    second = string.charCodeAt(index + 1);
915    if (second >= 0xDC00 && second <= 0xDFFF) {
916      return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
917    }
918  }
919  return first;
920}
921
922function normalizeIcons(icons) {
923  return Object.keys(icons).reduce((acc, iconName) => {
924    const icon = icons[iconName];
925    const expanded = !!icon.icon;
926    if (expanded) {
927      acc[icon.iconName] = icon.icon;
928    } else {
929      acc[iconName] = icon;
930    }
931    return acc;
932  }, {});
933}
934function defineIcons(prefix, icons) {
935  let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
936  const {
937    skipHooks = false
938  } = params;
939  const normalized = normalizeIcons(icons);
940  if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {
941    namespace.hooks.addPack(prefix, normalizeIcons(icons));
942  } else {
943    namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);
944  }
945
946  /**
947   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
948   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
949   * for `fas` so we'll ease the upgrade process for our users by automatically defining
950   * this as well.
951   */
952  if (prefix === 'fas') {
953    defineIcons('fa', icons);
954  }
955}
956
957const duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d="([^"]+)".*path d="([^"]+)"/, {
958  d1: 1,
959  d2: 2
960}), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)".*path class="([^"]+)".*d="([^"]+)"/, {
961  cls1: 1,
962  d1: 2,
963  cls2: 3,
964  d2: 4
965}), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)"/, {
966  cls1: 1,
967  d1: 2
968})];
969
970const {
971  styles,
972  shims
973} = namespace;
974const FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);
975const PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => {
976  acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);
977  return acc;
978}, {});
979let _defaultUsablePrefix = null;
980let _byUnicode = {};
981let _byLigature = {};
982let _byOldName = {};
983let _byOldUnicode = {};
984let _byAlias = {};
985function isReserved(name) {
986  return ~RESERVED_CLASSES.indexOf(name);
987}
988function getIconName(cssPrefix, cls) {
989  const parts = cls.split('-');
990  const prefix = parts[0];
991  const iconName = parts.slice(1).join('-');
992  if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {
993    return iconName;
994  } else {
995    return null;
996  }
997}
998const build = () => {
999  const lookup = reducer => {
1000    return reduce(styles, (o$$1, style, prefix) => {
1001      o$$1[prefix] = reduce(style, reducer, {});
1002      return o$$1;
1003    }, {});
1004  };
1005  _byUnicode = lookup((acc, icon, iconName) => {
1006    if (icon[3]) {
1007      acc[icon[3]] = iconName;
1008    }
1009    if (icon[2]) {
1010      const aliases = icon[2].filter(a$$1 => {
1011        return typeof a$$1 === 'number';
1012      });
1013      aliases.forEach(alias => {
1014        acc[alias.toString(16)] = iconName;
1015      });
1016    }
1017    return acc;
1018  });
1019  _byLigature = lookup((acc, icon, iconName) => {
1020    acc[iconName] = iconName;
1021    if (icon[2]) {
1022      const aliases = icon[2].filter(a$$1 => {
1023        return typeof a$$1 === 'string';
1024      });
1025      aliases.forEach(alias => {
1026        acc[alias] = iconName;
1027      });
1028    }
1029    return acc;
1030  });
1031  _byAlias = lookup((acc, icon, iconName) => {
1032    const aliases = icon[2];
1033    acc[iconName] = iconName;
1034    aliases.forEach(alias => {
1035      acc[alias] = iconName;
1036    });
1037    return acc;
1038  });
1039
1040  // If we have a Kit, we can't determine if regular is available since we
1041  // could be auto-fetching it. We'll have to assume that it is available.
1042  const hasRegular = 'far' in styles || config.autoFetchSvg;
1043  const shimLookups = reduce(shims, (acc, shim) => {
1044    const maybeNameMaybeUnicode = shim[0];
1045    let prefix = shim[1];
1046    const iconName = shim[2];
1047    if (prefix === 'far' && !hasRegular) {
1048      prefix = 'fas';
1049    }
1050    if (typeof maybeNameMaybeUnicode === 'string') {
1051      acc.names[maybeNameMaybeUnicode] = {
1052        prefix,
1053        iconName
1054      };
1055    }
1056    if (typeof maybeNameMaybeUnicode === 'number') {
1057      acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {
1058        prefix,
1059        iconName
1060      };
1061    }
1062    return acc;
1063  }, {
1064    names: {},
1065    unicodes: {}
1066  });
1067  _byOldName = shimLookups.names;
1068  _byOldUnicode = shimLookups.unicodes;
1069  _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {
1070    family: config.familyDefault
1071  });
1072};
1073onChange(c$$1 => {
1074  _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {
1075    family: config.familyDefault
1076  });
1077});
1078build();
1079function byUnicode(prefix, unicode) {
1080  return (_byUnicode[prefix] || {})[unicode];
1081}
1082function byLigature(prefix, ligature) {
1083  return (_byLigature[prefix] || {})[ligature];
1084}
1085function byAlias(prefix, alias) {
1086  return (_byAlias[prefix] || {})[alias];
1087}
1088function byOldName(name) {
1089  return _byOldName[name] || {
1090    prefix: null,
1091    iconName: null
1092  };
1093}
1094function byOldUnicode(unicode) {
1095  const oldUnicode = _byOldUnicode[unicode];
1096  const newUnicode = byUnicode('fas', unicode);
1097  return oldUnicode || (newUnicode ? {
1098    prefix: 'fas',
1099    iconName: newUnicode
1100  } : null) || {
1101    prefix: null,
1102    iconName: null
1103  };
1104}
1105function getDefaultUsablePrefix() {
1106  return _defaultUsablePrefix;
1107}
1108const emptyCanonicalIcon = () => {
1109  return {
1110    prefix: null,
1111    iconName: null,
1112    rest: []
1113  };
1114};
1115function getFamilyId(values) {
1116  let family = s;
1117  const famProps = FAMILY_NAMES.reduce((acc, familyId) => {
1118    acc[familyId] = "".concat(config.cssPrefix, "-").concat(familyId);
1119    return acc;
1120  }, {});
1121  L.forEach(familyId => {
1122    if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {
1123      family = familyId;
1124    }
1125  });
1126  return family;
1127}
1128function getCanonicalPrefix(styleOrPrefix) {
1129  let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1130  const {
1131    family = s
1132  } = params;
1133  const style = PREFIX_TO_STYLE[family][styleOrPrefix];
1134
1135  // handles the exception of passing in only a family of 'duotone' with no style
1136  if (family === t && !styleOrPrefix) {
1137    return 'fad';
1138  }
1139  const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];
1140  const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;
1141  const result = prefix || defined || null;
1142  return result;
1143}
1144function moveNonFaClassesToRest(classNames) {
1145  let rest = [];
1146  let iconName = null;
1147  classNames.forEach(cls => {
1148    const result = getIconName(config.cssPrefix, cls);
1149    if (result) {
1150      iconName = result;
1151    } else if (cls) {
1152      rest.push(cls);
1153    }
1154  });
1155  return {
1156    iconName,
1157    rest
1158  };
1159}
1160function sortedUniqueValues(arr) {
1161  return arr.sort().filter((value, index, arr) => {
1162    return arr.indexOf(value) === index;
1163  });
1164}
1165function getCanonicalIcon(values) {
1166  let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1167  const {
1168    skipLookups = false
1169  } = params;
1170  let givenPrefix = null;
1171  const faCombinedClasses = Ia.concat(bt$1);
1172  const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls)));
1173  const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !Ia.includes(cls)));
1174  const faStyles = faStyleOrFamilyClasses.filter(cls => {
1175    givenPrefix = cls;
1176    return !P.includes(cls);
1177  });
1178  const [styleFromValues = null] = faStyles;
1179  const family = getFamilyId(faStyleOrFamilyClasses);
1180  const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {
1181    prefix: getCanonicalPrefix(styleFromValues, {
1182      family
1183    })
1184  });
1185  return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({
1186    values,
1187    family,
1188    styles,
1189    config,
1190    canonical,
1191    givenPrefix
1192  })), applyShimAndAlias(skipLookups, givenPrefix, canonical));
1193}
1194function applyShimAndAlias(skipLookups, givenPrefix, canonical) {
1195  let {
1196    prefix,
1197    iconName
1198  } = canonical;
1199  if (skipLookups || !prefix || !iconName) {
1200    return {
1201      prefix,
1202      iconName
1203    };
1204  }
1205  const shim = givenPrefix === 'fa' ? byOldName(iconName) : {};
1206  const aliasIconName = byAlias(prefix, iconName);
1207  iconName = shim.iconName || aliasIconName || iconName;
1208  prefix = shim.prefix || prefix;
1209  if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {
1210    // Allow a fallback from the regular style to solid if regular is not available
1211    // but only if we aren't auto-fetching SVGs
1212    prefix = 'fas';
1213  }
1214  return {
1215    prefix,
1216    iconName
1217  };
1218}
1219const newCanonicalFamilies = L.filter(familyId => {
1220  return familyId !== s || familyId !== t;
1221});
1222const newCanonicalStyles = Object.keys(ga).filter(key => key !== s).map(key => Object.keys(ga[key])).flat();
1223function getDefaultCanonicalPrefix(prefixOptions) {
1224  const {
1225    values,
1226    family,
1227    canonical,
1228    givenPrefix = '',
1229    styles = {},
1230    config: config$$1 = {}
1231  } = prefixOptions;
1232  const isDuotoneFamily = family === t;
1233  const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');
1234  const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';
1235  const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';
1236  if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {
1237    canonical.prefix = 'fad';
1238  }
1239  if (values.includes('fa-brands') || values.includes('fab')) {
1240    canonical.prefix = 'fab';
1241  }
1242  if (!canonical.prefix && newCanonicalFamilies.includes(family)) {
1243    const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key));
1244    if (validPrefix || config$$1.autoFetchSvg) {
1245      const defaultPrefix = pt.get(family).defaultShortPrefixId;
1246      canonical.prefix = defaultPrefix;
1247      canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;
1248    }
1249  }
1250  if (canonical.prefix === 'fa' || givenPrefix === 'fa') {
1251    // The fa prefix is not canonical. So if it has made it through until this point
1252    // we will shift it to the correct prefix.
1253    canonical.prefix = getDefaultUsablePrefix() || 'fas';
1254  }
1255  return canonical;
1256}
1257
1258class Library {
1259  constructor() {
1260    this.definitions = {};
1261  }
1262  add() {
1263    for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {
1264      definitions[_key] = arguments[_key];
1265    }
1266    const additions = definitions.reduce(this._pullDefinitions, {});
1267    Object.keys(additions).forEach(key => {
1268      this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]);
1269      defineIcons(key, additions[key]);
1270
1271      // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change
1272      const longPrefix = PREFIX_TO_LONG_STYLE[s][key];
1273      if (longPrefix) defineIcons(longPrefix, additions[key]);
1274      build();
1275    });
1276  }
1277  reset() {
1278    this.definitions = {};
1279  }
1280  _pullDefinitions(additions, definition) {
1281    const normalized = definition.prefix && definition.iconName && definition.icon ? {
1282      0: definition
1283    } : definition;
1284    Object.keys(normalized).map(key => {
1285      const {
1286        prefix,
1287        iconName,
1288        icon
1289      } = normalized[key];
1290      const aliases = icon[2];
1291      if (!additions[prefix]) additions[prefix] = {};
1292      if (aliases.length > 0) {
1293        aliases.forEach(alias => {
1294          if (typeof alias === 'string') {
1295            additions[prefix][alias] = icon;
1296          }
1297        });
1298      }
1299      additions[prefix][iconName] = icon;
1300    });
1301    return additions;
1302  }
1303}
1304
1305let _plugins = [];
1306let _hooks = {};
1307const providers = {};
1308const defaultProviderKeys = Object.keys(providers);
1309function registerPlugins(nextPlugins, _ref) {
1310  let {
1311    mixoutsTo: obj
1312  } = _ref;
1313  _plugins = nextPlugins;
1314  _hooks = {};
1315  Object.keys(providers).forEach(k => {
1316    if (defaultProviderKeys.indexOf(k) === -1) {
1317      delete providers[k];
1318    }
1319  });
1320  _plugins.forEach(plugin => {
1321    const mixout = plugin.mixout ? plugin.mixout() : {};
1322    Object.keys(mixout).forEach(tk => {
1323      if (typeof mixout[tk] === 'function') {
1324        obj[tk] = mixout[tk];
1325      }
1326      if (typeof mixout[tk] === 'object') {
1327        Object.keys(mixout[tk]).forEach(sk => {
1328          if (!obj[tk]) {
1329            obj[tk] = {};
1330          }
1331          obj[tk][sk] = mixout[tk][sk];
1332        });
1333      }
1334    });
1335    if (plugin.hooks) {
1336      const hooks = plugin.hooks();
1337      Object.keys(hooks).forEach(hook => {
1338        if (!_hooks[hook]) {
1339          _hooks[hook] = [];
1340        }
1341        _hooks[hook].push(hooks[hook]);
1342      });
1343    }
1344    if (plugin.provides) {
1345      plugin.provides(providers);
1346    }
1347  });
1348  return obj;
1349}
1350function chainHooks(hook, accumulator) {
1351  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1352    args[_key - 2] = arguments[_key];
1353  }
1354  const hookFns = _hooks[hook] || [];
1355  hookFns.forEach(hookFn => {
1356    accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call
1357  });
1358  return accumulator;
1359}
1360function callHooks(hook) {
1361  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1362    args[_key2 - 1] = arguments[_key2];
1363  }
1364  const hookFns = _hooks[hook] || [];
1365  hookFns.forEach(hookFn => {
1366    hookFn.apply(null, args);
1367  });
1368  return undefined;
1369}
1370function callProvided() {
1371  const hook = arguments[0];
1372  const args = Array.prototype.slice.call(arguments, 1);
1373  return providers[hook] ? providers[hook].apply(null, args) : undefined;
1374}
1375
1376function findIconDefinition(iconLookup) {
1377  if (iconLookup.prefix === 'fa') {
1378    iconLookup.prefix = 'fas';
1379  }
1380  let {
1381    iconName
1382  } = iconLookup;
1383  const prefix = iconLookup.prefix || getDefaultUsablePrefix();
1384  if (!iconName) return;
1385  iconName = byAlias(prefix, iconName) || iconName;
1386  return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
1387}
1388const library = new Library();
1389const noAuto = () => {
1390  config.autoReplaceSvg = false;
1391  config.observeMutations = false;
1392  callHooks('noAuto');
1393};
1394const dom = {
1395  i2svg: function () {
1396    let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1397    if (IS_DOM) {
1398      callHooks('beforeI2svg', params);
1399      callProvided('pseudoElements2svg', params);
1400      return callProvided('i2svg', params);
1401    } else {
1402      return Promise.reject(new Error('Operation requires a DOM of some kind.'));
1403    }
1404  },
1405  watch: function () {
1406    let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1407    const {
1408      autoReplaceSvgRoot
1409    } = params;
1410    if (config.autoReplaceSvg === false) {
1411      config.autoReplaceSvg = true;
1412    }
1413    config.observeMutations = true;
1414    domready(() => {
1415      autoReplace({
1416        autoReplaceSvgRoot
1417      });
1418      callHooks('watch', params);
1419    });
1420  }
1421};
1422const parse = {
1423  icon: icon => {
1424    if (icon === null) {
1425      return null;
1426    }
1427    if (typeof icon === 'object' && icon.prefix && icon.iconName) {
1428      return {
1429        prefix: icon.prefix,
1430        iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName
1431      };
1432    }
1433    if (Array.isArray(icon) && icon.length === 2) {
1434      const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];
1435      const prefix = getCanonicalPrefix(icon[0]);
1436      return {
1437        prefix,
1438        iconName: byAlias(prefix, iconName) || iconName
1439      };
1440    }
1441    if (typeof icon === 'string' && (icon.indexOf("".concat(config.cssPrefix, "-")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {
1442      const canonicalIcon = getCanonicalIcon(icon.split(' '), {
1443        skipLookups: true
1444      });
1445      return {
1446        prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),
1447        iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName
1448      };
1449    }
1450    if (typeof icon === 'string') {
1451      const prefix = getDefaultUsablePrefix();
1452      return {
1453        prefix,
1454        iconName: byAlias(prefix, icon) || icon
1455      };
1456    }
1457  }
1458};
1459const api = {
1460  noAuto,
1461  config,
1462  dom,
1463  parse,
1464  library,
1465  findIconDefinition,
1466  toHtml
1467};
1468const autoReplace = function () {
1469  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1470  const {
1471    autoReplaceSvgRoot = DOCUMENT
1472  } = params;
1473  if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({
1474    node: autoReplaceSvgRoot
1475  });
1476};
1477
1478function domVariants(val, abstractCreator) {
1479  Object.defineProperty(val, 'abstract', {
1480    get: abstractCreator
1481  });
1482  Object.defineProperty(val, 'html', {
1483    get: function () {
1484      return val.abstract.map(a => toHtml(a));
1485    }
1486  });
1487  Object.defineProperty(val, 'node', {
1488    get: function () {
1489      if (!IS_DOM) return;
1490      const container = DOCUMENT.createElement('div');
1491      container.innerHTML = val.html;
1492      return container.children;
1493    }
1494  });
1495  return val;
1496}
1497
1498function asIcon (_ref) {
1499  let {
1500    children,
1501    main,
1502    mask,
1503    attributes,
1504    styles,
1505    transform
1506  } = _ref;
1507  if (transformIsMeaningful(transform) && main.found && !mask.found) {
1508    const {
1509      width,
1510      height
1511    } = main;
1512    const offset = {
1513      x: width / height / 2,
1514      y: 0.5
1515    };
1516    attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {
1517      'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em")
1518    }));
1519  }
1520  return [{
1521    tag: 'svg',
1522    attributes,
1523    children
1524  }];
1525}
1526
1527function asSymbol (_ref) {
1528  let {
1529    prefix,
1530    iconName,
1531    children,
1532    attributes,
1533    symbol
1534  } = _ref;
1535  const id = symbol === true ? "".concat(prefix, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol;
1536  return [{
1537    tag: 'svg',
1538    attributes: {
1539      style: 'display: none;'
1540    },
1541    children: [{
1542      tag: 'symbol',
1543      attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {
1544        id
1545      }),
1546      children
1547    }]
1548  }];
1549}
1550
1551function makeInlineSvgAbstract(params) {
1552  const {
1553    icons: {
1554      main,
1555      mask
1556    },
1557    prefix,
1558    iconName,
1559    transform,
1560    symbol,
1561    title,
1562    maskId,
1563    titleId,
1564    extra,
1565    watchable = false
1566  } = params;
1567  const {
1568    width,
1569    height
1570  } = mask.found ? mask : main;
1571  const isUploadedIcon = Lt.includes(prefix);
1572  const attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' ');
1573  let content = {
1574    children: [],
1575    attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {
1576      'data-prefix': prefix,
1577      'data-icon': iconName,
1578      'class': attrClass,
1579      'role': extra.attributes.role || 'img',
1580      'xmlns': 'http://www.w3.org/2000/svg',
1581      'viewBox': "0 0 ".concat(width, " ").concat(height)
1582    })
1583  };
1584  const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {
1585    width: "".concat(width / height * 16 * 0.0625, "em")
1586  } : {};
1587  if (watchable) {
1588    content.attributes[DATA_FA_I2SVG] = '';
1589  }
1590  if (title) {
1591    content.children.push({
1592      tag: 'title',
1593      attributes: {
1594        id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId())
1595      },
1596      children: [title]
1597    });
1598    delete content.attributes.title;
1599  }
1600  const args = _objectSpread2(_objectSpread2({}, content), {}, {
1601    prefix,
1602    iconName,
1603    main,
1604    mask,
1605    maskId,
1606    transform,
1607    symbol,
1608    styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)
1609  });
1610  const {
1611    children,
1612    attributes
1613  } = mask.found && main.found ? callProvided('generateAbstractMask', args
1613) || {
1614    children: [],
1615    attributes: {}
1616  } : callProvided('generateAbstractIcon', args) || {
1617    children: [],
1618    attributes: {}
1619  };
1620  args.children = children;
1621  args.attributes = attributes;
1622  if (symbol) {
1623    return asSymbol(args);
1624  } else {
1625    return asIcon(args);
1626  }
1627}
1628function makeLayersTextAbstract(params) {
1629  const {
1630    content,
1631    width,
1632    height,
1633    transform,
1634    title,
1635    extra,
1636    watchable = false
1637  } = params;
1638  const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
1639    'title': title
1640  } : {}), {}, {
1641    'class': extra.classes.join(' ')
1642  });
1643  if (watchable) {
1644    attributes[DATA_FA_I2SVG] = '';
1645  }
1646  const styles = _objectSpread2({}, extra.styles);
1647  if (transformIsMeaningful(transform)) {
1648    styles['transform'] = transformForCss({
1649      transform,
1650      startCentered: true,
1651      width,
1652      height
1653    });
1654    styles['-webkit-transform'] = styles['transform'];
1655  }
1656  const styleString = joinStyles(styles);
1657  if (styleString.length > 0) {
1658    attributes['style'] = styleString;
1659  }
1660  const val = [];
1661  val.push({
1662    tag: 'span',
1663    attributes,
1664    children: [content]
1665  });
1666  if (title) {
1667    val.push({
1668      tag: 'span',
1669      attributes: {
1670        class: 'sr-only'
1671      },
1672      children: [title]
1673    });
1674  }
1675  return val;
1676}
1677function makeLayersCounterAbstract(params) {
1678  const {
1679    content,
1680    title,
1681    extra
1682  } = params;
1683  const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
1684    'title': title
1685  } : {}), {}, {
1686    'class': extra.classes.join(' ')
1687  });
1688  const styleString = joinStyles(extra.styles);
1689  if (styleString.length > 0) {
1690    attributes['style'] = styleString;
1691  }
1692  const val = [];
1693  val.push({
1694    tag: 'span',
1695    attributes,
1696    children: [content]
1697  });
1698  if (title) {
1699    val.push({
1700      tag: 'span',
1701      attributes: {
1702        class: 'sr-only'
1703      },
1704      children: [title]
1705    });
1706  }
1707  return val;
1708}
1709
1710const {
1711  styles: styles$1
1712} = namespace;
1713function asFoundIcon(icon) {
1714  const width = icon[0];
1715  const height = icon[1];
1716  const [vectorData] = icon.slice(4);
1717  let element = null;
1718  if (Array.isArray(vectorData)) {
1719    element = {
1720      tag: 'g',
1721      attributes: {
1722        class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP)
1723      },
1724      children: [{
1725        tag: 'path',
1726        attributes: {
1727          class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY),
1728          fill: 'currentColor',
1729          d: vectorData[0]
1730        }
1731      }, {
1732        tag: 'path',
1733        attributes: {
1734          class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY),
1735          fill: 'currentColor',
1736          d: vectorData[1]
1737        }
1738      }]
1739    };
1740  } else {
1741    element = {
1742      tag: 'path',
1743      attributes: {
1744        fill: 'currentColor',
1745        d: vectorData
1746      }
1747    };
1748  }
1749  return {
1750    found: true,
1751    width,
1752    height,
1753    icon: element
1754  };
1755}
1756const missingIconResolutionMixin = {
1757  found: false,
1758  width: 512,
1759  height: 512
1760};
1761function maybeNotifyMissing(iconName, prefix) {
1762  if (!PRODUCTION && !config.showMissingIcons && iconName) {
1763    console.error("Icon with name \"".concat(iconName, "\" and prefix \"").concat(prefix, "\" is missing."));
1764  }
1765}
1766function findIcon(iconName, prefix) {
1767  let givenPrefix = prefix;
1768  if (prefix === 'fa' && config.styleDefault !== null) {
1769    prefix = getDefaultUsablePrefix();
1770  }
1771  return new Promise((resolve, reject) => {
1772    if (givenPrefix === 'fa') {
1773      const shim = byOldName(iconName) || {};
1774      iconName = shim.iconName || iconName;
1775      prefix = shim.prefix || prefix;
1776    }
1777    if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {
1778      const icon = styles$1[prefix][iconName];
1779      return resolve(asFoundIcon(icon));
1780    }
1781    maybeNotifyMissing(iconName, prefix);
1782    resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {
1783      icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}
1784    }));
1785  });
1786}
1787
1788const noop$1 = () => {};
1789const p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {
1790  mark: noop$1,
1791  measure: noop$1
1792};
1793const preamble = "FA \"6.7.2\"";
1794const begin = name => {
1795  p$2.mark("".concat(preamble, " ").concat(name, " begins"));
1796  return () => end(name);
1797};
1798const end = name => {
1799  p$2.mark("".concat(preamble, " ").concat(name, " ends"));
1800  p$2.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends"));
1801};
1802var perf = {
1803  begin,
1804  end
1805};
1806
1807const noop$2 = () => {};
1808function isWatched(node) {
1809  const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
1810  return typeof i2svg === 'string';
1811}
1812function hasPrefixAndIcon(node) {
1813  const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;
1814  const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;
1815  return prefix && icon;
1816}
1817function hasBeenReplaced(node) {
1818  return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);
1819}
1820function getMutator() {
1821  if (config.autoReplaceSvg === true) {
1822    return mutators.replace;
1823  }
1824  const mutator = mutators[config.autoReplaceSvg];
1825  return mutator || mutators.replace;
1826}
1827function createElementNS(tag) {
1828  return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);
1829}
1830function createElement(tag) {
1831  return DOCUMENT.createElement(tag);
1832}
1833function convertSVG(abstractObj) {
1834  let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1835  const {
1836    ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement
1837  } = params;
1838  if (typeof abstractObj === 'string') {
1839    return DOCUMENT.createTextNode(abstractObj);
1840  }
1841  const tag = ceFn(abstractObj.tag);
1842  Object.keys(abstractObj.attributes || []).forEach(function (key) {
1843    tag.setAttribute(key, abstractObj.attributes[key]);
1844  });
1845  const children = abstractObj.children || [];
1846  children.forEach(function (child) {
1847    tag.appendChild(convertSVG(child, {
1848      ceFn
1849    }));
1850  });
1851  return tag;
1852}
1853function nodeAsComment(node) {
1854  let comment = " ".concat(node.outerHTML, " ");
1855  /* BEGIN.ATTRIBUTION */
1856  comment = "".concat(comment, "Font Awesome fontawesome.com ");
1857  /* END.ATTRIBUTION */
1858  return comment;
1859}
1860const mutators = {
1861  replace: function (mutation) {
1862    const node = mutation[0];
1863    if (node.parentNode) {
1864      mutation[1].forEach(abstract => {
1865        node.parentNode.insertBefore(convertSVG(abstract), node);
1866      });
1867      if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {
1868        let comment = DOCUMENT.createComment(nodeAsComment(node));
1869        node.parentNode.replaceChild(comment, node);
1870      } else {
1871        node.remove();
1872      }
1873    }
1874  },
1875  nest: function (mutation) {
1876    const node = mutation[0];
1877    const abstract = mutation[1];
1878
1879    // If we already have a replaced node we do not want to continue nesting within it.
1880    // Short-circuit to the standard replacement
1881    if (~classArray(node).indexOf(config.replacementClass)) {
1882      return mutators.replace(mutation);
1883    }
1884    const forSvg = new RegExp("".concat(config.cssPrefix, "-.*"));
1885    delete abstract[0].attributes.id;
1886    if (abstract[0].attributes.class) {
1887      const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {
1888        if (cls === config.replacementClass || cls.match(forSvg)) {
1889          acc.toSvg.push(cls);
1890        } else {
1891          acc.toNode.push(cls);
1892        }
1893        return acc;
1894      }, {
1895        toNode: [],
1896        toSvg: []
1897      });
1898      abstract[0].attributes.class = splitClasses.toSvg.join(' ');
1899      if (splitClasses.toNode.length === 0) {
1900        node.removeAttribute('class');
1901      } else {
1902        node.setAttribute('class', splitClasses.toNode.join(' '));
1903      }
1904    }
1905    const newInnerHTML = abstract.map(a => toHtml(a)).join('\n');
1906    node.setAttribute(DATA_FA_I2SVG, '');
1907    node.innerHTML = newInnerHTML;
1908  }
1909};
1910function performOperationSync(op) {
1911  op();
1912}
1913function perform(mutations, callback) {
1914  const callbackFunction = typeof callback === 'function' ? callback : noop$2;
1915  if (mutations.length === 0) {
1916    callbackFunction();
1917  } else {
1918    let frame = performOperationSync;
1919    if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {
1920      frame = WINDOW.requestAnimationFrame || performOperationSync;
1921    }
1922    frame(() => {
1923      const mutator = getMutator();
1924      const mark = perf.begin('mutate');
1925      mutations.map(mutator);
1926      mark();
1927      callbackFunction();
1928    });
1929  }
1930}
1931let disabled = false;
1932function disableObservation() {
1933  disabled = true;
1934}
1935function enableObservation() {
1936  disabled = false;
1937}
1938let mo = null;
1939function observe(options) {
1940  if (!MUTATION_OBSERVER) {
1941    return;
1942  }
1943  if (!config.observeMutations) {
1944    return;
1945  }
1946  const {
1947    treeCallback = noop$2,
1948    nodeCallback = noop$2,
1949    pseudoElementsCallback = noop$2,
1950    observeMutationsRoot = DOCUMENT
1951  } = options;
1952  mo = new MUTATION_OBSERVER(objects => {
1953    if (disabled) return;
1954    const defaultPrefix = getDefaultUsablePrefix();
1955    toArray(objects).forEach(mutationRecord => {
1956      if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
1957        if (config.searchPseudoElements) {
1958          pseudoElementsCallback(mutationRecord.target);
1959        }
1960        treeCallback(mutationRecord.target);
1961      }
1962      if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
1963        pseudoElementsCallback(mutationRecord.target.parentNode);
1964      }
1965      if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
1966        if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {
1967          const {
1968            prefix,
1969            iconName
1970          } = getCanonicalIcon(classArray(mutationRecord.target));
1971          mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);
1972          if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);
1973        } else if (hasBeenReplaced(mutationRecord.target)) {
1974          nodeCallback(mutationRecord.target);
1975        }
1976      }
1977    });
1978  });
1979  if (!IS_DOM) return;
1980  mo.observe(observeMutationsRoot, {
1981    childList: true,
1982    attributes: true,
1983    characterData: true,
1984    subtree: true
1985  });
1986}
1987function disconnect() {
1988  if (!mo) return;
1989  mo.disconnect();
1990}
1991
1992function styleParser (node) {
1993  const style = node.getAttribute('style');
1994  let val = [];
1995  if (style) {
1996    val = style.split(';').reduce((acc, style) => {
1997      const styles = style.split(':');
1998      const prop = styles[0];
1999      const value = styles.slice(1);
2000      if (prop && value.length > 0) {
2001        acc[prop] = value.join(':').trim();
2002      }
2003      return acc;
2004    }, {});
2005  }
2006  return val;
2007}
2008
2009function classParser (node) {
2010  const existingPrefix = node.getAttribute('data-prefix');
2011  const existingIconName = node.getAttribute('data-icon');
2012  const innerText = node.innerText !== undefined ? node.innerText.trim() : '';
2013  let val = getCanonicalIcon(classArray(node));
2014  if (!val.prefix) {
2015    val.prefix = getDefaultUsablePrefix();
2016  }
2017  if (existingPrefix && existingIconName) {
2018    val.prefix = existingPrefix;
2019    val.iconName = existingIconName;
2020  }
2021  if (val.iconName && val.prefix) {
2022    return val;
2023  }
2024  if (val.prefix && innerText.length > 0) {
2025    val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));
2026  }
2027  if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {
2028    val.iconName = node.firstChild.data;
2029  }
2030  return val;
2031}
2032
2033function attributesParser (node) {
2034  const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {
2035    if (acc.name !== 'class' && acc.name !== 'style') {
2036      acc[attr.name] = attr.value;
2037    }
2038    return acc;
2039  }, {});
2040  const title = node.getAttribute('title');
2041  const titleId = node.getAttribute('data-fa-title-id');
2042  if (config.autoA11y) {
2043    if (title) {
2044      extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
2045    } else {
2046      extraAttributes['aria-hidden'] = 'true';
2047      extraAttributes['focusable'] = 'false';
2048    }
2049  }
2050  return extraAttributes;
2051}
2052
2053function blankMeta() {
2054  return {
2055    iconName: null,
2056    title: null,
2057    titleId: null,
2058    prefix: null,
2059    transform: meaninglessTransform,
2060    symbol: false,
2061    mask: {
2062      iconName: null,
2063      prefix: null,
2064      rest: []
2065    },
2066    maskId: null,
2067    extra: {
2068      classes: [],
2069      styles: {},
2070      attributes: {}
2071    }
2072  };
2073}
2074function parseMeta(node) {
2075  let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
2076    styleParser: true
2077  };
2078  const {
2079    iconName,
2080    prefix,
2081    rest: extraClasses
2082  } = classParser(node);
2083  const extraAttributes = attributesParser(node);
2084  const pluginMeta = chainHooks('parseNodeAttributes', {}, node);
2085  let extraStyles = parser.styleParser ? styleParser(node) : [];
2086  return _objectSpread2({
2087    iconName,
2088    title: node.getAttribute('title'),
2089    titleId: node.getAttribute('data-fa-title-id'),
2090    prefix,
2091    transform: meaninglessTransform,
2092    mask: {
2093      iconName: null,
2094      prefix: null,
2095      rest: []
2096    },
2097    maskId: null,
2098    symbol: false,
2099    extra: {
2100      classes: extraClasses,
2101      styles: extraStyles,
2102      attributes: extraAttributes
2103    }
2104  }, pluginMeta);
2105}
2106
2107const {
2108  styles: styles$2
2109} = namespace;
2110function generateMutation(node) {
2111  const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {
2112    styleParser: false
2113  }) : parseMeta(node);
2114  if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
2115    return callProvided('generateLayersText', node, nodeMeta);
2116  } else {
2117    return callProvided('generateSvgReplacementMutation', node, nodeMeta);
2118  }
2119}
2120function getKnownPrefixes() {
2121  return [...Ft, ...Ia];
2122}
2123function onTree(root) {
2124  let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2125  if (!IS_DOM) return Promise.resolve();
2126  const htmlClassList = DOCUMENT.documentElement.classList;
2127  const hclAdd = suffix => htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
2128  const hclRemove = suffix => htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
2129  const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2));
2130  if (!prefixes.includes('fa')) {
2131    prefixes.push('fa');
2132  }
2133  const prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(p$$1 => ".".concat(p$$1, ":not([").concat(DATA_FA_I2SVG, "])"))).join(', ');
2134  if (prefixesDomQuery.length === 0) {
2135    return Promise.resolve();
2136  }
2137  let candidates = [];
2138  try {
2139    candidates = toArray(root.querySelectorAll(prefixesDomQuery));
2140  } catch (e$$1) {
2141    // noop
2142  }
2143  if (candidates.length > 0) {
2144    hclAdd('pending');
2145    hclRemove('complete');
2146  } else {
2147    return Promise.resolve();
2148  }
2149  const mark = perf.begin('onTree');
2150  const mutations = candidates.reduce((acc, node) => {
2151    try {
2152      const mutation = generateMutation(node);
2153      if (mutation) {
2154        acc.push(mutation);
2155      }
2156    } catch (e$$1) {
2157      if (!PRODUCTION) {
2158        if (e$$1.name === 'MissingIcon') {
2159          console.error(e$$1);
2160        }
2161      }
2162    }
2163    return acc;
2164  }, []);
2165  return new Promise((resolve, reject) => {
2166    Promise.all(mutations).then(resolvedMutations => {
2167      perform(resolvedMutations, () => {
2168        hclAdd('active');
2169        hclAdd('complete');
2170        hclRemove('pending');
2171        if (typeof callback === 'function') callback();
2172        mark();
2173        resolve();
2174      });
2175    }).catch(e$$1 => {
2176      mark();
2177      reject(e$$1);
2178    });
2179  });
2180}
2181function onNode(node) {
2182  let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2183  generateMutation(node).then(mutation => {
2184    if (mutation) {
2185      perform([mutation], callback);
2186    }
2187  });
2188}
2189function resolveIcons(next) {
2190  return function (maybeIconDefinition) {
2191    let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2192    const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
2193    let {
2194      mask
2195    } = params;
2196    if (mask) {
2197      mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
2198    }
2199    return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {
2200      mask
2201    }));
2202  };
2203}
2204const render = function (iconDefinition) {
2205  let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2206  const {
2207    transform = meaninglessTransform,
2208    symbol = false,
2209    mask = null,
2210    maskId = null,
2211    title = null,
2212    titleId = null,
2213    classes = [],
2214    attributes = {},
2215    styles = {}
2216  } = params;
2217  if (!iconDefinition) return;
2218  const {
2219    prefix,
2220    iconName,
2221    icon
2222  } = iconDefinition;
2223  return domVariants(_objectSpread2({
2224    type: 'icon'
2225  }, iconDefinition), () => {
2226    callHooks('beforeDOMElementCreation', {
2227      iconDefinition,
2228      params
2229    });
2230    if (config.autoA11y) {
2231      if (title) {
2232        attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
2233      } else {
2234        attributes['aria-hidden'] = 'true';
2235        attributes['focusable'] = 'false';
2236      }
2237    }
2238    return makeInlineSvgAbstract({
2239      icons: {
2240        main: asFoundIcon(icon),
2241        mask: mask ? asFoundIcon(mask.icon) : {
2242          found: false,
2243          width: null,
2244          height: null,
2245          icon: {}
2246        }
2247      },
2248      prefix,
2249      iconName,
2250      transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
2251      symbol,
2252      title,
2253      maskId,
2254      titleId,
2255      extra: {
2256        attributes,
2257        styles,
2258        classes
2259      }
2260    });
2261  });
2262};
2263var ReplaceElements = {
2264  mixout() {
2265    return {
2266      icon: resolveIcons(render)
2267    };
2268  },
2269  hooks() {
2270    return {
2271      mutationObserverCallbacks(accumulator) {
2272        accumulator.treeCallback = onTree;
2273        accumulator.nodeCallback = onNode;
2274        return accumulator;
2275      }
2276    };
2277  },
2278  provides(providers$$1) {
2279    providers$$1.i2svg = function (params) {
2280      const {
2281        node = DOCUMENT,
2282        callback = () => {}
2283      } = params;
2284      return onTree(node, callback);
2285    };
2286    providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {
2287      const {
2288        iconName,
2289        title,
2290        titleId,
2291        prefix,
2292        transform,
2293        symbol,
2294        mask,
2295        maskId,
2296        extra
2297      } = nodeMeta;
2298      return new Promise((resolve, reject) => {
2299        Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({
2300          found: false,
2301          width: 512,
2302          height: 512,
2303          icon: {}
2304        })]).then(_ref => {
2305          let [main, mask] = _ref;
2306          resolve([node, makeInlineSvgAbstract({
2307            icons: {
2308              main,
2309              mask
2310            },
2311            prefix,
2312            iconName,
2313            transform,
2314            symbol,
2315            maskId,
2316            title,
2317            titleId,
2318            extra,
2319            watchable: true
2320          })]);
2321        }).catch(reject);
2322      });
2323    };
2324    providers$$1.generateAbstractIcon = function (_ref2) {
2325      let {
2326        children,
2327        attributes,
2328        main,
2329        transform,
2330        styles
2331      } = _ref2;
2332      const styleString = joinStyles(styles);
2333      if (styleString.length > 0) {
2334        attributes['style'] = styleString;
2335      }
2336      let nextChild;
2337      if (transformIsMeaningful(transform)) {
2338        nextChild = callProvided('generateAbstractTransformGrouping', {
2339          main,
2340          transform,
2341          containerWidth: main.width,
2342          iconWidth: main.width
2343        });
2344      }
2345      children.push(nextChild || main.icon);
2346      return {
2347        children,
2348        attributes
2349      };
2350    };
2351  }
2352};
2353
2354var Layers = {
2355  mixout() {
2356    return {
2357      layer(assembler) {
2358        let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2359        const {
2360          classes = []
2361        } = params;
2362        return domVariants({
2363          type: 'layer'
2364        }, () => {
2365          callHooks('beforeDOMElementCreation', {
2366            assembler,
2367            params
2368          });
2369          let children = [];
2370          assembler(args => {
2371            Array.isArray(args) ? args.map(a => {
2372              children = children.concat(a.abstract);
2373            }) : children = children.concat(args.abstract);
2374          });
2375          return [{
2376            tag: 'span',
2377            attributes: {
2378              class: ["".concat(config.cssPrefix, "-layers"), ...classes].join(' ')
2379            },
2380            children
2381          }];
2382        });
2383      }
2384    };
2385  }
2386};
2387
2388var LayersCounter = {
2389  mixout() {
2390    return {
2391      counter(content) {
2392        let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2393        const {
2394          title = null,
2395          classes = [],
2396          attributes = {},
2397          styles = {}
2398        } = params;
2399        return domVariants({
2400          type: 'counter',
2401          content
2402        }, () => {
2403          callHooks('beforeDOMElementCreation', {
2404            content,
2405            params
2406          });
2407          return makeLayersCounterAbstract({
2408            content: content.toString(),
2409            title,
2410            extra: {
2411              attributes,
2412              styles,
2413              classes: ["".concat(config.cssPrefix, "-layers-counter"), ...classes]
2414            }
2415          });
2416        });
2417      }
2418    };
2419  }
2420};
2421
2422var LayersText = {
2423  mixout() {
2424    return {
2425      text(content) {
2426        let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2427        const {
2428          transform = meaninglessTransform,
2429          title = null,
2430          classes = [],
2431          attributes = {},
2432          styles = {}
2433        } = params;
2434        return domVariants({
2435          type: 'text',
2436          content
2437        }, () => {
2438          callHooks('beforeDOMElementCreation', {
2439            content,
2440            params
2441          });
2442          return makeLayersTextAbstract({
2443            content,
2444            transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
2445            title,
2446            extra: {
2447              attributes,
2448              styles,
2449              classes: ["".concat(config.cssPrefix, "-layers-text"), ...classes]
2450            }
2451          });
2452        });
2453      }
2454    };
2455  },
2456  provides(providers$$1) {
2457    providers$$1.generateLayersText = function (node, nodeMeta) {
2458      const {
2459        title,
2460        transform,
2461        extra
2462      } = nodeMeta;
2463      let width = null;
2464      let height = null;
2465      if (IS_IE) {
2466        const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
2467        const boundingClientRect = node.getBoundingClientRect();
2468        width = boundingClientRect.width / computedFontSize;
2469        height = boundingClientRect.height / computedFontSize;
2470      }
2471      if (config.autoA11y && !title) {
2472        extra.attributes['aria-hidden'] = 'true';
2473      }
2474      return Promise.resolve([node, makeLayersTextAbstract({
2475        content: node.innerHTML,
2476        width,
2477        height,
2478        transform,
2479        title,
2480        extra,
2481        watchable: true
2482      })]);
2483    };
2484  }
2485};
2486
2487const CLEAN_CONTENT_PATTERN = new RegExp('\u{22}', 'ug');
2488const SECONDARY_UNICODE_RANGE = [1105920, 1112319];
2489const _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {
2490  FontAwesome: {
2491    normal: 'fas',
2492    400: 'fas'
2493  }
2494}), lt), wa), Yt);
2495const FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {
2496  acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];
2497  return acc;
2498}, {});
2499const FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {
2500  const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];
2501  acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];
2502  return acc;
2503}, {});
2504function hexValueFromContent(content) {
2505  const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');
2506  const codePoint = codePointAt(cleaned, 0);
2507  const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];
2508  const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;
2509  return {
2510    value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),
2511    isSecondary: isPrependTen || isDoubled
2512  };
2513}
2514function getPrefix(fontFamily, fontWeight) {
2515  const fontFamilySanitized = fontFamily.replace(/^['"]|['"]$/g, '').toLowerCase();
2516  const fontWeightInteger = parseInt(fontWeight);
2517  const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;
2518  return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];
2519}
2520function replaceForPosition(node, position) {
2521  const pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));
2522  return new Promise((resolve, reject) => {
2523    if (node.getAttribute(pendingAttribute) !== null) {
2524      // This node is already being processed
2525      return resolve();
2526    }
2527    const children = toArray(node.children);
2528    const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];
2529    const styles = WINDOW.getComputedStyle(node, position);
2530    const fontFamily = styles.getPropertyValue('font-family');
2531    const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);
2532    const fontWeight = styles.getPropertyValue('font-weight');
2533    const content = styles.getPropertyValue('content');
2534    if (alreadyProcessedPseudoElement && !fontFamilyMatch) {
2535      // If we've already processed it but the current computed style does not result in a font-family,
2536      // that probably means that a class name that was previously present to make the icon has been
2537      // removed. So we now should delete the icon.
2538      node.removeChild(alreadyProcessedPseudoElement);
2539      return resolve();
2540    } else if (fontFamilyMatch && content !== 'none' && content !== '') {
2541      const content = styles.getPropertyValue('content');
2542      let prefix = getPrefix(fontFamily, fontWeight);
2543      const {
2544        value: hexValue,
2545        isSecondary
2546      } = hexValueFromContent(content);
2547      const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');
2548      let iconName = byUnicode(prefix, hexValue);
2549      let iconIdentifier = iconName;
2550      if (isV4) {
2551        const iconName4 = byOldUnicode(hexValue);
2552        if (iconName4.iconName && iconName4.prefix) {
2553          iconName = iconName4.iconName;
2554          prefix = iconName4.prefix;
2555        }
2556      }
2557
2558      // Only convert the pseudo element in this ::before/::after position into an icon if we haven't
2559      // already done so with the same prefix and iconName
2560      if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {
2561        node.setAttribute(pendingAttribute, iconIdentifier);
2562        if (alreadyProcessedPseudoElement) {
2563          // Delete the old one, since we're replacing it with a new one
2564          node.removeChild(alreadyProcessedPseudoElement);
2565        }
2566        const meta = blankMeta();
2567        const {
2568          extra
2569        } = meta;
2570        extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;
2571        findIcon(iconName, prefix).then(main => {
2572          const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {
2573            icons: {
2574              main,
2575              mask: emptyCanonicalIcon()
2576            },
2577            prefix,
2578            iconName: iconIdentifier,
2579            extra,
2580            watchable: true
2581          }));
2582          const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');
2583          if (position === '::before') {
2584            node.insertBefore(element, node.firstChild);
2585          } else {
2586            node.appendChild(element);
2587          }
2588          element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\n');
2589          node.removeAttribute(pendingAttribute);
2590          resolve();
2591        }).catch(reject);
2592      } else {
2593        resolve();
2594      }
2595    } else {
2596      resolve();
2597    }
2598  });
2599}
2600function replace(node) {
2601  return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);
2602}
2603function processable(node) {
2604  return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');
2605}
2606function searchPseudoElements(root) {
2607  if (!IS_DOM) return;
2608  return new Promise((resolve, reject) => {
2609    const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);
2610    const end = perf.begin('searchPseudoElements');
2611    disableObservation();
2612    Promise.all(operations).then(() => {
2613      end();
2614      enableObservation();
2615      resolve();
2616    }).catch(() => {
2617      end();
2618      enableObservation();
2619      reject();
2620    });
2621  });
2622}
2623var PseudoElements = {
2624  hooks() {
2625    return {
2626      mutationObserverCallbacks(accumulator) {
2627        accumulator.pseudoElementsCallback = searchPseudoElements;
2628        return accumulator;
2629      }
2630    };
2631  },
2632  provides(providers) {
2633    providers.pseudoElements2svg = function (params) {
2634      const {
2635        node = DOCUMENT
2636      } = params;
2637      if (config.searchPseudoElements) {
2638        searchPseudoElements(node);
2639      }
2640    };
2641  }
2642};
2643
2644let _unwatched = false;
2645var MutationObserver$1 = {
2646  mixout() {
2647    return {
2648      dom: {
2649        unwatch() {
2650          disableObservation();
2651          _unwatched = true;
2652        }
2653      }
2654    };
2655  },
2656  hooks() {
2657    return {
2658      bootstrap() {
2659        observe(chainHooks('mutationObserverCallbacks', {}));
2660      },
2661      noAuto() {
2662        disconnect();
2663      },
2664      watch(params) {
2665        const {
2666          observeMutationsRoot
2667        } = params;
2668        if (_unwatched) {
2669          enableObservation();
2670        } else {
2671          observe(chainHooks('mutationObserverCallbacks', {
2672            observeMutationsRoot
2673          }));
2674        }
2675      }
2676    };
2677  }
2678};
2679
2680const parseTransformString = transformString => {
2681  let transform = {
2682    size: 16,
2683    x: 0,
2684    y: 0,
2685    flipX: false,
2686    flipY: false,
2687    rotate: 0
2688  };
2689  return transformString.toLowerCase().split(' ').reduce((acc, n) => {
2690    const parts = n.toLowerCase().split('-');
2691    const first = parts[0];
2692    let rest = parts.slice(1).join('-');
2693    if (first && rest === 'h') {
2694      acc.flipX = true;
2695      return acc;
2696    }
2697    if (first && rest === 'v') {
2698      acc.flipY = true;
2699      return acc;
2700    }
2701    rest = parseFloat(rest);
2702    if (isNaN(rest)) {
2703      return acc;
2704    }
2705    switch (first) {
2706      case 'grow':
2707        acc.size = acc.size + rest;
2708        break;
2709      case 'shrink':
2710        acc.size = acc.size - rest;
2711        break;
2712      case 'left':
2713        acc.x = acc.x - rest;
2714        break;
2715      case 'right':
2716        acc.x = acc.x + rest;
2717        break;
2718      case 'up':
2719        acc.y = acc.y - rest;
2720        break;
2721      case 'down':
2722        acc.y = acc.y + rest;
2723        break;
2724      case 'rotate':
2725        acc.rotate = acc.rotate + rest;
2726        break;
2727    }
2728    return acc;
2729  }, transform);
2730};
2731var PowerTransforms = {
2732  mixout() {
2733    return {
2734      parse: {
2735        transform: transformString => {
2736          return parseTransformString(transformString);
2737        }
2738      }
2739    };
2740  },
2741  hooks() {
2742    return {
2743      parseNodeAttributes(accumulator, node) {
2744        const transformString = node.getAttribute('data-fa-transform');
2745        if (transformString) {
2746          accumulator.transform = parseTransformString(transformString);
2747        }
2748        return accumulator;
2749      }
2750    };
2751  },
2752  provides(providers) {
2753    providers.generateAbstractTransformGrouping = function (_ref) {
2754      let {
2755        main,
2756        transform,
2757        containerWidth,
2758        iconWidth
2759      } = _ref;
2760      const outer = {
2761        transform: "translate(".concat(containerWidth / 2, " 256)")
2762      };
2763      const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
2764      const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
2765      const innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
2766      const inner = {
2767        transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
2768      };
2769      const path = {
2770        transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
2771      };
2772      const operations = {
2773        outer,
2774        inner,
2775        path
2776      };
2777      return {
2778        tag: 'g',
2779        attributes: _objectSpread2({}, operations.outer),
2780        children: [{
2781          tag: 'g',
2782          attributes: _objectSpread2({}, operations.inner),
2783          children: [{
2784            tag: main.icon.tag,
2785            children: main.icon.children,
2786            attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)
2787          }]
2788        }]
2789      };
2790    };
2791  }
2792};
2793
2794const ALL_SPACE = {
2795  x: 0,
2796  y: 0,
2797  width: '100%',
2798  height: '100%'
2799};
2800function fillBlack(abstract) {
2801  let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2802  if (abstract.attributes && (abstract.attributes.fill || force)) {
2803    abstract.attributes.fill = 'black';
2804  }
2805  return abstract;
2806}
2807function deGroup(abstract) {
2808  if (abstract.tag === 'g') {
2809    return abstract.children;
2810  } else {
2811    return [abstract];
2812  }
2813}
2814var Masks = {
2815  hooks() {
2816    return {
2817      parseNodeAttributes(accumulator, node) {
2818        const maskData = node.getAttribute('data-fa-mask');
2819        const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));
2820        if (!mask.prefix) {
2821          mask.prefix = getDefaultUsablePrefix();
2822        }
2823        accumulator.mask = mask;
2824        accumulator.maskId = node.getAttribute('data-fa-mask-id');
2825        return accumulator;
2826      }
2827    };
2828  },
2829  provides(providers) {
2830    providers.generateAbstractMask = function (_ref) {
2831      let {
2832        children,
2833        attributes,
2834        main,
2835        mask,
2836        maskId: explicitMaskId,
2837        transform
2838      } = _ref;
2839      const {
2840        width: mainWidth,
2841        icon: mainPath
2842      } = main;
2843      const {
2844        width: maskWidth,
2845        icon: maskPath
2846      } = mask;
2847      const trans = transformForSvg({
2848        transform,
2849        containerWidth: maskWidth,
2850        iconWidth: mainWidth
2851      });
2852      const maskRect = {
2853        tag: 'rect',
2854        attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
2855          fill: 'white'
2856        })
2857      };
2858      const maskInnerGroupChildrenMixin = mainPath.children ? {
2859        children: mainPath.children.map(fillBlack)
2860      } : {};
2861      const maskInnerGroup = {
2862        tag: 'g',
2863        attributes: _objectSpread2({}, trans.inner),
2864        children: [fillBlack(_objectSpread2({
2865          tag: mainPath.tag,
2866          attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)
2867        }, maskInnerGroupChildrenMixin))]
2868      };
2869      const maskOuterGroup = {
2870        tag: 'g',
2871        attributes: _objectSpread2({}, trans.outer),
2872        children: [maskInnerGroup]
2873      };
2874      const maskId = "mask-".concat(explicitMaskId || nextUniqueId());
2875      const clipId = "clip-".concat(explicitMaskId || nextUniqueId());
2876      const maskTag = {
2877        tag: 'mask',
2878        attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
2879          id: maskId,
2880          maskUnits: 'userSpaceOnUse',
2881          maskContentUnits: 'userSpaceOnUse'
2882        }),
2883        children: [maskRect, maskOuterGroup]
2884      };
2885      const defs = {
2886        tag: 'defs',
2887        children: [{
2888          tag: 'clipPath',
2889          attributes: {
2890            id: clipId
2891          },
2892          children: deGroup(maskPath)
2893        }, maskTag]
2894      };
2895      children.push(defs, {
2896        tag: 'rect',
2897        attributes: _objectSpread2({
2898          fill: 'currentColor',
2899          'clip-path': "url(#".concat(clipId, ")"),
2900          mask: "url(#".concat(maskId, ")")
2901        }, ALL_SPACE)
2902      });
2903      return {
2904        children,
2905        attributes
2906      };
2907    };
2908  }
2909};
2910
2911var MissingIconIndicator = {
2912  provides(providers) {
2913    let reduceMotion = false;
2914    if (WINDOW.matchMedia) {
2915      reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;
2916    }
2917    providers.missingIconAbstract = function () {
2918      const gChildren = [];
2919      const FILL = {
2920        fill: 'currentColor'
2921      };
2922      const ANIMATION_BASE = {
2923        attributeType: 'XML',
2924        repeatCount: 'indefinite',
2925        dur: '2s'
2926      };
2927
2928      // Ring
2929      gChildren.push({
2930        tag: 'path',
vendor: 6,230 bytes, lines 2931-3084
2931        attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
2932          d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
2933        })
2934      });
2935      const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
2936        attributeName: 'opacity'
2937      });
2938      const dot = {
2939        tag: 'circle',
2940        attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
2941          cx: '256',
2942          cy: '364',
2943          r: '28'
2944        }),
2945        children: []
2946      };
2947      if (!reduceMotion) {
2948        dot.children.push({
2949          tag: 'animate',
2950          attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
2951            attributeName: 'r',
2952            values: '28;14;28;28;14;28;'
2953          })
2954        }, {
2955          tag: 'animate',
2956          attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
2957            values: '1;0;1;1;0;1;'
2958          })
2959        });
2960      }
2961      gChildren.push(dot);
2962      gChildren.push({
2963        tag: 'path',
2964        attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
2965          opacity: '1',
2966          d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
2967        }),
2968        children: reduceMotion ? [] : [{
2969          tag: 'animate',
2970          attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
2971            values: '1;0;0;0;0;1;'
2972          })
2973        }]
2974      });
2975      if (!reduceMotion) {
2976        // Exclamation
2977        gChildren.push({
2978          tag: 'path',
2979          attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
2980            opacity: '0',
2981            d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
2982          }),
2983          children: [{
2984            tag: 'animate',
2985            attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
2986              values: '0;0;1;1;0;0;'
2987            })
2988          }]
2989        });
2990      }
2991      return {
2992        tag: 'g',
2993        attributes: {
2994          'class': 'missing'
2995        },
2996        children: gChildren
2997      };
2998    };
2999  }
3000};
3001
3002var SvgSymbols = {
3003  hooks() {
3004    return {
3005      parseNodeAttributes(accumulator, node) {
3006        const symbolData = node.getAttribute('data-fa-symbol');
3007        const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;
3008        accumulator['symbol'] = symbol;
3009        return accumulator;
3010      }
3011    };
3012  }
3013};
3014
3015var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];
3016
3017registerPlugins(plugins, {
3018  mixoutsTo: api
3019});
3020const noAuto$1 = api.noAuto;
3021const config$1 = api.config;
3022const library$1 = api.library;
3023const dom$1 = api.dom;
3024const parse$1 = api.parse;
3025const findIconDefinition$1 = api.findIconDefinition;
3026const toHtml$1 = api.toHtml;
3027const icon = api.icon;
3028const fontawesome_svg_core_layer = api.layer;
3029const fontawesome_svg_core_text = api.text;
3030const counter = api.counter;
3031
3032
3033
3034// EXTERNAL MODULE: ./node_modules/prop-types/index.js
3035var prop_types = __webpack_require__(45697);
3036var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
3037// EXTERNAL MODULE: ./node_modules/react/index.js
3038var react = __webpack_require__(67294);
3039;// CONCATENATED MODULE: ./node_modules/@fortawesome/react-fontawesome/index.es.js
3040/* provided dependency */ var process = __webpack_require__(34155);
3041
3042
3043
3044
3045function _arrayLikeToArray(r, a) {
3046  (null == a || a > r.length) && (a = r.length);
3047  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
3048  return n;
3049}
3050function _arrayWithHoles(r) {
3051  if (Array.isArray(r)) return r;
3052}
3053function _arrayWithoutHoles(r) {
3054  if (Array.isArray(r)) return _arrayLikeToArray(r);
3055}
3056function index_es_defineProperty(e, r, t) {
3057  return (r = index_es_toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
3058    value: t,
3059    enumerable: !0,
3060    configurable: !0,
3061    writable: !0
3062  }) : e[r] = t, e;
3063}
3064function _iterableToArray(r) {
3065  if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
3066}
3067function _iterableToArrayLimit(r, l) {
3068  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
3069  if (null != t) {
3070    var e,
3071      n,
3072      i,
3073      u,
3074      a = [],
3075      f = !0,
3076      o = !1;
3077    try {
3078      if (i = (t = t.call(r)).next, 0 === l) {
3079        if (Object(t) !== t) return;
3080        f = !1;
3081      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
3082    } catch (r) {
3083      o = !0, n = r;
3084    } finally {
vendor: 5,326 bytes, lines 3085-3234
3085      try {
3086        if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
3087      } finally {
3088        if (o) throw n;
3089      }
3090    }
3091    return a;
3092  }
3093}
3094function _nonIterableRest() {
3095  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3096}
3097function _nonIterableSpread() {
3098  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3099}
3100function index_es_ownKeys(e, r) {
3101  var t = Object.keys(e);
3102  if (Object.getOwnPropertySymbols) {
3103    var o = Object.getOwnPropertySymbols(e);
3104    r && (o = o.filter(function (r) {
3105      return Object.getOwnPropertyDescriptor(e, r).enumerable;
3106    })), t.push.apply(t, o);
3107  }
3108  return t;
3109}
3110function index_es_objectSpread2(e) {
3111  for (var r = 1; r < arguments.length; r++) {
3112    var t = null != arguments[r] ? arguments[r] : {};
3113    r % 2 ? index_es_ownKeys(Object(t), !0).forEach(function (r) {
3114      index_es_defineProperty(e, r, t[r]);
3115    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : index_es_ownKeys(Object(t)).forEach(function (r) {
3116      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
3117    });
3118  }
3119  return e;
3120}
3121function _objectWithoutProperties(e, t) {
3122  if (null == e) return {};
3123  var o,
3124    r,
3125    i = _objectWithoutPropertiesLoose(e, t);
3126  if (Object.getOwnPropertySymbols) {
3127    var n = Object.getOwnPropertySymbols(e);
3128    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
3129  }
3130  return i;
3131}
3132function _objectWithoutPropertiesLoose(r, e) {
3133  if (null == r) return {};
3134  var t = {};
3135  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
3136    if (-1 !== e.indexOf(n)) continue;
3137    t[n] = r[n];
3138  }
3139  return t;
3140}
3141function _slicedToArray(r, e) {
3142  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
3143}
3144function _toConsumableArray(r) {
3145  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
3146}
3147function index_es_toPrimitive(t, r) {
3148  if ("object" != typeof t || !t) return t;
3149  var e = t[Symbol.toPrimitive];
3150  if (void 0 !== e) {
3151    var i = e.call(t, r || "default");
3152    if ("object" != typeof i) return i;
3153    throw new TypeError("@@toPrimitive must return a primitive value.");
3154  }
3155  return ("string" === r ? String : Number)(t);
3156}
3157function index_es_toPropertyKey(t) {
3158  var i = index_es_toPrimitive(t, "string");
3159  return "symbol" == typeof i ? i : i + "";
3160}
3161function _typeof(o) {
3162  "@babel/helpers - typeof";
3163
3164  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
3165    return typeof o;
3166  } : function (o) {
3167    return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
3168  }, _typeof(o);
3169}
3170function _unsupportedIterableToArray(r, a) {
3171  if (r) {
3172    if ("string" == typeof r) return _arrayLikeToArray(r, a);
3173    var t = {}.toString.call(r).slice(8, -1);
3174    return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
3175  }
3176}
3177
3178var ICON_PACKS_STARTING_VERSION = '7.0.0';
3179
3180// Try to get version from installed package first, fallback to env var, then default
3181var SVG_CORE_VERSION;
3182try {
3183  var svgCorePackageJson = __webpack_require__(74533);
3184  SVG_CORE_VERSION = svgCorePackageJson.version;
3185} catch (e) {
3186  // If package.json can't be loaded, try environment variable
3187  SVG_CORE_VERSION = typeof process !== 'undefined' && process.env.FA_VERSION || '7.0.0';
3188}
3189
3190// Get CSS class list from a props object
3191function classList(props) {
3192  var beat = props.beat,
3193    fade = props.fade,
3194    beatFade = props.beatFade,
3195    bounce = props.bounce,
3196    shake = props.shake,
3197    flash = props.flash,
3198    spin = props.spin,
3199    spinPulse = props.spinPulse,
3200    spinReverse = props.spinReverse,
3201    pulse = props.pulse,
3202    fixedWidth = props.fixedWidth,
3203    inverse = props.inverse,
3204    border = props.border,
3205    listItem = props.listItem,
3206    flip = props.flip,
3207    size = props.size,
3208    rotation = props.rotation,
3209    pull = props.pull,
3210    swapOpacity = props.swapOpacity,
3211    rotateBy = props.rotateBy,
3212    widthAuto = props.widthAuto;
3213
3214  // Check if we're using version 7 or later
3215  var isVersion7OrLater = versionCheckGte(SVG_CORE_VERSION, ICON_PACKS_STARTING_VERSION);
3216
3217  // map of CSS class names to properties
3218  var classes = index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty(index_es_defineProperty({
3219    'fa-beat': beat,
3220    'fa-fade': fade,
3221    'fa-beat-fade': beatFade,
3222    'fa-bounce': bounce,
3223    'fa-shake': shake,
3224    'fa-flash': flash,
3225    'fa-spin': spin,
3226    'fa-spin-reverse': spinReverse,
3227    'fa-spin-pulse': spinPulse,
3228    'fa-pulse': pulse,
3229    'fa-fw': fixedWidth,
3230    'fa-inverse': inverse,
3231    'fa-border': border,
3232    'fa-li': listItem,
3233    'fa-flip': flip === true,
3234    'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',
3235    'fa-flip-vertical': flip === 'vertical' || flip === 'both'
3236  }, "fa-".concat(size), typeof size !== 'undefined' && size !== null), "fa-rotate-".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), "fa-pull-".concat(pull), typeof pull !== 'undefined' && pull !== null), 'fa-swap-opacity', swapOpacity), 'fa-rotate-by', isVersion7OrLater && rotateBy), 'fa-width-auto', isVersion7OrLater && widthAuto);
3237
3238  // map over all the keys in the classes object
3239  // return an array of the keys where the value for the key is not null
3240  return Object.keys(classes).map(function (key) {
3241    return classes[key] ? key : null;
3242  }).filter(function (key) {
3243    return key;
3244  });
3245}
3246
3247// check if verion1 is greater than or equal to version2
3248function versionCheckGte(version1, version2) {
3249  var _version1$split = version1.split('-'),
3250    _version1$split2 = _slicedToArray(_version1$split, 2),
3251    v1Base = _version1$split2[0],
3252    v1PreRelease = _version1$split2[1];
3253  var _version2$split = version2.split('-'),
3254    _version2$split2 = _slicedToArray(_version2$split, 2),
3255    v2Base = _version2$split2[0],
3256    v2PreRelease = _version2$split2[1];
3257  var v1Parts = v1Base.split('.');
3258  var v2Parts = v2Base.split('.');
3259
3260  // Compare version numbers first
3261  for (var i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
3262    var v1Part = v1Parts[i] || '0';
3263    var v2Part = v2Parts[i] || '0';
3264
3265    // Compare numeric values
3266    var v1Num = parseInt(v1Part, 10);
3267    var v2Num = parseInt(v2Part, 10);
3268    if (v1Num !== v2Num) {
3269      return v1Num > v2Num;
3270    }
3271  }
3272
3273  // If numeric values are equal, look for any remaining parts
3274  // that would make one version greater than the other
3275  for (var _i = 0; _i < Math.max(v1Parts.length, v2Parts.length); _i++) {
3276    var _v1Part = v1Parts[_i] || '0';
3277    var _v2Part = v2Parts[_i] || '0';
3278    if (_v1Part !== _v2Part) {
3279      // When numeric values are equal but strings differ,
3280      // the one without leading zeros is greater
3281      if (_v1Part.length !== _v2Part.length) {
3282        return _v1Part.length < _v2Part.length;
3283      }
3284    }
3285  }
3286
3287  // If version numbers are equal, compare pre-release identifiers
3288  // A version with a pre-release identifier is less than one without
3289  if (v1PreRelease && !v2PreRelease) return false;
3290  if (!v1PreRelease && v2PreRelease) return true;
3291  return true;
3292}
3293
3294// Camelize taken from humps
3295// humps is copyright © 2012+ Dom Christie
3296// Released under the MIT license.
3297
3298// Performant way to determine if object coerces to a number
3299function _isNumerical(obj) {
3300  obj = obj - 0;
3301
3302  // eslint-disable-next-line no-self-compare
3303  return obj === obj;
3304}
3305function camelize(string) {
3306  if (_isNumerical(string)) {
3307    return string;
3308  }
3309
3310  // eslint-disable-next-line no-useless-escape
3311  string = string.replace(/[\-_\s]+(.)?/g, function (match, chr) {
3312    return chr ? chr.toUpperCase() : '';
3313  });
3314
3315  // Ensure 1st char is always lowercase
3316  return string.substr(0, 1).toLowerCase() + string.substr(1);
3317}
3318
3319var _excluded = ["style"];
3320function capitalize(val) {
3321  return val.charAt(0).toUpperCase() + val.slice(1);
3322}
3323function styleToObject(style) {
3324  return style.split(';').map(function (s) {
3325    return s.trim();
3326  }).filter(function (s) {
3327    return s;
3328  }).reduce(function (acc, pair) {
3329    var i = pair.indexOf(':');
3330    var prop = camelize(pair.slice(0, i));
3331    var value = pair.slice(i + 1).trim();
3332    prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;
3333    return acc;
3334  }, {});
3335}
3336function convert(createElement, element) {
3337  var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
3338  if (typeof element === 'string') {
3339    return element;
3340  }
3341  var children = (element.children || []).map(function (child) {
3342    return convert(createElement, child);
3343  });
3344
3345  /* eslint-disable dot-notation */
3346  var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {
3347    var val = element.attributes[key];
3348    switch (key) {
3349      case 'class':
3350        acc.attrs['className'] = val;
3351        delete element.attributes['class'];
3352        break;
3353      case 'style':
3354        acc.attrs['style'] = styleToObject(val);
3355        break;
3356      default:
3357        if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {
3358          acc.attrs[key.toLowerCase()] = val;
3359        } else {
3360          acc.attrs[camelize(key)] = val;
3361        }
3362    }
3363    return acc;
3364  }, {
3365    attrs: {}
3366  });
3367  var _extraProps$style = extraProps.style,
3368    existingStyle = _extraProps$style === void 0 ? {}
3368 : _extraProps$style,
3369    remaining = _objectWithoutProperties(extraProps, _excluded);
3370  mixins.attrs['style'] = index_es_objectSpread2(index_es_objectSpread2({}, mixins.attrs['style']), existingStyle);
3371  /* eslint-enable */
3372
3373  return createElement.apply(void 0, [element.tag, index_es_objectSpread2(index_es_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));
3374}
3375
3376var index_es_PRODUCTION = false;
3377try {
3378  index_es_PRODUCTION = "production" === 'production';
3379} catch (e) {}
3380function log () {
3381  if (!index_es_PRODUCTION && console && typeof console.error === 'function') {
3382    var _console;
3383    (_console = console).error.apply(_console, arguments);
3384  }
3385}
3386
3387// Normalize icon arguments
3388function normalizeIconArgs(icon) {
3389  // this has everything that it needs to be rendered which means it was probably imported
3390  // directly from an icon svg package
3391  if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {
3392    return icon;
3393  }
3394  if (parse$1.icon) {
3395    return parse$1.icon(icon);
3396  }
3397
3398  // if the icon is null, there's nothing to do
3399  if (icon === null) {
3400    return null;
3401  }
3402
3403  // if the icon is an object and has a prefix and an icon name, return it
3404  if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {
3405    return icon;
3406  }
3407
3408  // if it's an array with length of two
3409  if (Array.isArray(icon) && icon.length === 2) {
3410    // use the first item as prefix, second as icon name
3411    return {
3412      prefix: icon[0],
3413      iconName: icon[1]
3414    };
3415  }
3416
3417  // if it's a string, use it as the icon name
3418  if (typeof icon === 'string') {
3419    return {
3420      prefix: 'fas',
3421      iconName: icon
3422    };
3423  }
3424}
3425
3426// creates an object with a key of key
3427// and a value of value
3428// if certain conditions are met
3429function objectWithKey(key, value) {
3430  // if the value is a non-empty array
3431  // or it's not an array but it is truthy
3432  // then create the object with the key and the value
3433  // if not, return an empty array
3434  return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? index_es_defineProperty({}, key, value) : {};
3435}
3436
3437var defaultProps = {
3438  border: false,
3439  className: '',
3440  mask: null,
3441  maskId: null,
3442  // the fixedWidth property has been deprecated as of version 7
3443  fixedWidth: false,
3444  inverse: false,
3445  flip: false,
3446  icon: null,
3447  listItem: false,
3448  pull: null,
3449  pulse: false,
3450  rotation: null,
3451  rotateBy: false,
3452  size: null,
3453  spin: false,
3454  spinPulse: false,
3455  spinReverse: false,
3456  beat: false,
3457  fade: false,
3458  beatFade: false,
3459  bounce: false,
3460  shake: false,
3461  symbol: false,
3462  title: '',
3463  titleId: null,
3464  transform: null,
3465  swapOpacity: false,
3466  widthAuto: false
3467};
3468var FontAwesomeIcon = /*#__PURE__*/react.forwardRef(function (props, ref) {
3469  var allProps = index_es_objectSpread2(index_es_objectSpread2({}, defaultProps), props);
3470  var iconArgs = allProps.icon,
3471    maskArgs = allProps.mask,
3472    symbol = allProps.symbol,
3473    className = allProps.className,
3474    title = allProps.title,
3475    titleId = allProps.titleId,
3476    maskId = allProps.maskId;
3477  var iconLookup = normalizeIconArgs(iconArgs);
3478  var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));
3479  var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse$1.transform(allProps.transform) : allProps.transform);
3480  var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));
3481  var renderedIcon = icon(iconLookup, index_es_objectSpread2(index_es_objectSpread2(index_es_objectSpread2(index_es_objectSpread2({}, classes), transform), mask), {}, {
3482    symbol: symbol,
3483    title: title,
3484    titleId: titleId,
3485    maskId: maskId
3486  }));
3487  if (!renderedIcon) {
3488    log('Could not find icon', iconLookup);
3489    return null;
3490  }
3491  var abstract = renderedIcon.abstract;
3492  var extraProps = {
3493    ref: ref
3494  };
3495  Object.keys(allProps).forEach(function (key) {
3496    // eslint-disable-next-line no-prototype-builtins
3497    if (!defaultProps.hasOwnProperty(key)) {
3498      extraProps[key] = allProps[key];
3499    }
3500  });
3501  return convertCurry(abstract[0], extraProps);
3502});
3503FontAwesomeIcon.displayName = 'FontAwesomeIcon';
3504FontAwesomeIcon.propTypes = {
3505  beat: (prop_types_default()).bool,
3506  border: (prop_types_default()).bool,
3507  beatFade: (prop_types_default()).bool,
3508  bounce: (prop_types_default()).bool,
3509  className: (prop_types_default()).string,
3510  fade: (prop_types_default()).bool,
3511  flash: (prop_types_default()).bool,
3512  mask: prop_types_default().oneOfType([(prop_types_default()).object, (prop_types_default()).array, (prop_types_default()).string]),
3513  maskId: (prop_types_default()).string,
3514  // the fixedWidth property has been deprecated as of version 7
3515  fixedWidth: (prop_types_default()).bool,
3516  inverse: (prop_types_default()).bool,
3517  flip: prop_types_default().oneOf([true, false, 'horizontal', 'vertical', 'both']),
3518  icon: prop_types_default().oneOfType([(prop_types_default()).object, (prop_types_default()).array, (prop_types_default()).string]),
3519  listItem: (prop_types_default()).bool,
3520  pull: prop_types_default().oneOf(['right', 'left']),
3521  pulse: (prop_types_default()).bool,
3522  rotation: prop_types_default().oneOf([0, 90, 180, 270]),
3523  rotateBy: (prop_types_default()).bool,
3524  shake: (prop_types_default()).bool,
3525  size: prop_types_default().oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),
3526  spin: (prop_types_default()).bool,
3527  spinPulse: (prop_types_default()).bool,
3528  spinReverse: (prop_types_default()).bool,
3529  symbol: prop_types_default().oneOfType([(prop_types_default()).bool, (prop_types_default()).string]),
3530  title: (prop_types_default()).string,
3531  titleId: (prop_types_default()).string,
3532  transform: prop_types_default().oneOfType([(prop_types_default()).string, (prop_types_default()).object]),
3533  swapOpacity: (prop_types_default()).bool,
3534  widthAuto: (prop_types_default()).bool
3535};
3536var convertCurry = convert.bind(null, react.createElement);
3537
3538
3539
3540
3541/***/ }),
3542
3543/***/ 60762:
3544/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3545
3546
3547// EXPORTS
3548__webpack_require__.d(__webpack_exports__, {
3549  Z: function() { return /* binding */ Card_Card; }
3550});
3551
3552// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
3553var esm_extends = __webpack_require__(87462);
3554// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
3555var objectWithoutPropertiesLoose = __webpack_require__(63366);
3556// EXTERNAL MODULE: ./node_modules/react/index.js
3557var react = __webpack_require__(67294);
3558// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs
3559var clsx = __webpack_require__(90512);
3560// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js
3561var composeClasses = __webpack_require__(94780);
3562// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js
3563var styled = __webpack_require__(77527);
3564// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js
3565var DefaultPropsProvider = __webpack_require__(44001);
3566// EXTERNAL MODULE: ./node_modules/@mui/material/Paper/Paper.js + 2 modules
3567var Paper = __webpack_require__(93454);
3568// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js
3569var generateUtilityClasses = __webpack_require__(1588);
3570// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js
3571var generateUtilityClass = __webpack_require__(34867);
3572;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/cardClasses.js
3573
3574
3575function getCardUtilityClass(slot) {
3576    return (0,generateUtilityClass/* default */.ZP)("MuiCard", slot);
3577}
3578const cardClasses = (0,generateUtilityClasses/* default */.Z)("MuiCard", [
3579    "root"
3580]);
3581/* harmony default export */ var Card_cardClasses = ((/* unused pure expression or super */ null && (cardClasses)));
3582
3583// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
3584var jsx_runtime = __webpack_require__(85893);
3585;// CONCATENATED MODULE: ./node_modules/@mui/material/Card/Card.js
3586/* __next_internal_client_entry_do_not_use__ default auto */ 
3587
3588const _excluded = [
3589    "className",
3590    "raised"
3591];
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602const useUtilityClasses = (ownerState)=>{
3603    const { classes } = ownerState;
3604    const slots = {
3605        root: [
3606            "root"
3607        ]
3608    };
3609    return (0,composeClasses/* default */.Z)(slots, getCardUtilityClass, classes);
3610};
3611const CardRoot = (0,styled/* default */.ZP)(Paper/* default */.Z, {
3612    name: "MuiCard",
3613    slot: "Root",
3614    overridesResolver: (props, styles)=>styles.root
3615})(()=>{
3616    return {
3617        overflow: "hidden"
3618    };
3619});
3620const Card = /*#__PURE__*/ react.forwardRef(function Card(inProps, ref) {
3621    const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({
3622        props: inProps,
3623        name: "MuiCard"
3624    });
3625    const { className, raised = false } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);
3626    const ownerState = (0,esm_extends/* default */.Z)({}, props, {
3627        raised
3628    });
3629    const classes = useUtilityClasses(ownerState);
3630    return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardRoot, (0,esm_extends/* default */.Z)({
3631        className: (0,clsx/* default */.Z)(classes.root, className),
3632        elevation: raised ? 8 : undefined,
3633        ref: ref,
3634        ownerState: ownerState
3635    }, other));
3636});
3637 false ? 0 : void 0;
3638/* harmony default export */ var Card_Card = (Card);
3639
3640
3641/***/ }),
3642
3643/***/ 71919:
3644/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3645
3646
3647// EXPORTS
3648__webpack_require__.d(__webpack_exports__, {
3649  Z: function() { return /* binding */ CardContent_CardContent; }
3650});
3651
3652// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
3653var esm_extends = __webpack_require__(87462);
3654// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
3655var objectWithoutPropertiesLoose = __webpack_require__(63366);
3656// EXTERNAL MODULE: ./node_modules/react/index.js
3657var react = __webpack_require__(67294);
3658// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs
3659var clsx = __webpack_require__(90512);
3660// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/composeClasses/composeClasses.js
3661var composeClasses = __webpack_require__(94780);
3662// EXTERNAL MODULE: ./node_modules/@mui/material/styles/styled.js
3663var styled = __webpack_require__(77527);
3664// EXTERNAL MODULE: ./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js
3665var DefaultPropsProvider = __webpack_require__(44001);
3666// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js
3667var generateUtilityClasses = __webpack_require__(1588);
3668// EXTERNAL MODULE: ./node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js
3669var generateUtilityClass = __webpack_require__(34867);
3670;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/cardContentClasses.js
3671
3672
3673function getCardContentUtilityClass(slot) {
3674    return (0,generateUtilityClass/* default */.ZP)("MuiCardContent", slot);
3675}
3676const cardContentClasses = (0,generateUtilityClasses/* default */.Z)("MuiCardContent", [
3677    "root"
3678]);
3679/* harmony default export */ var CardContent_cardContentClasses = ((/* unused pure expression or super */ null && (cardContentClasses)));
3680
3681// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
3682var jsx_runtime = __webpack_require__(85893);
3683;// CONCATENATED MODULE: ./node_modules/@mui/material/CardContent/CardContent.js
3684/* __next_internal_client_entry_do_not_use__ default auto */ 
3685
3686const _excluded = [
3687    "className",
3688    "component"
3689];
3690
3691
3692
3693
3694
3695
3696
3697
3698const useUtilityClasses = (ownerState)=>{
3699    const { classes } = ownerState;
3700    const slots = {
3701        root: [
3702            "root"
3703        ]
3704    };
3705    return (0,composeClasses/* default */.Z)(slots, getCardContentUtilityClass, classes);
3706};
3707const CardContentRoot = (0,styled/* default */.ZP)("div", {
3708    name: "MuiCardContent",
3709    slot: "Root",
3710    overridesResolver: (props, styles)=>styles.root
3711})(()=>{
3712    return {
3713        padding: 16,
3714        "&:last-child": {
3715            paddingBottom: 24
3716        }
3717    };
3718});
3719const CardContent = /*#__PURE__*/ react.forwardRef(function CardContent(inProps, ref) {
3720    const props = (0,DefaultPropsProvider/* useDefaultProps */.i)({
3721        props: inProps,
3722        name: "MuiCardContent"
3723    });
3724    const { className, component = "div" } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded);
3725    const ownerState = (0,esm_extends/* default */.Z)({}, props, {
3726        component
3727    });
3728    const classes = useUtilityClasses(ownerState);
3729    return /*#__PURE__*/ (0,jsx_runtime.jsx)(CardContentRoot, (0,esm_extends/* default */.Z)({
3730        as: component,
3731        className: (0,clsx/* default */.Z)(classes.root, className),
3732        ownerState: ownerState,
3733        ref: ref
3734    }, other));
3735});
3736 false ? 0 : void 0;
3737/* harmony default export */ var CardContent_CardContent = (CardContent);
3738
3739
3740/***/ }),
3741
3742/***/ 74533:
3743/***/ (function(module) {
3744
3745module.exports = /*#__PURE__*/JSON.parse('{"description":"The iconic font, CSS, and SVG framework","keywords":["font","awesome","fontawesome","icon","svg","bootstrap"],"homepage":"https://fontawesome.com","bugs":{"url":"https://github.com/FortAwesome/Font-Awesome/issues"},"author":"The Font Awesome Team (https://github.com/orgs/FortAwesome/people)","repository":{"type":"git","url":"https://github.com/FortAwesome/Font-Awesome"},"engines":{"node":">=6"}
3745,"dependencies":{"@fortawesome/fontawesome-common-types":"6.7.2"},"version":"6.7.2","name":"@fortawesome/fontawesome-svg-core","main":"index.js","module":"index.mjs","jsnext:main":"index.mjs","style":"styles.css","license":"MIT","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","style":"./styles.css","default":"./index.js"},"./index":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","default":"./index.js"},"./index.js":{"types":"./index.d.ts","module":"./index.mjs","import":"./index.mjs","require":"./index.js","default":"./index.js"},"./plugins":{"types":"./index.d.ts","module":"./plugins.mjs","import":"./plugins.mjs","default":"./plugins.mjs"},"./import.macro":"./import.macro.js","./import.macro.js":"./import.macro.js","./styles":"./styles.css","./styles.css":"./styles.css","./package.json":"./package.json"},"sideEffects":["./index.js","./index.mjs","./styles.css"]}');
3746
3747/***/ })
3748
3749}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.